0

我有一个名为 student 的表,其中包含字段 [ID,NAME,EMAIL],现在我执行了如下操作:

> $query =
> $this->db->select('*')->from('student')->where('EMAIL',xyz@gmail.com');

现在我的要求是上述 $query 的所有学生 IDS 都应该相同。这件事怎么办...

这完全意味着我需要check查询,如果查询中的所有用户 ID 都相同

[echo 'success' 和 ID] else [echo 'false'];

ID  NAME         EMAIL 
1   alex      xyz@gmail.com
1   john      xyz@gmail.com
2   nithu     ooo@gmail.com
3   rohit     sda@gmail.com
4   jack      dad@gmail.com

现在在上表中,如果我执行上述操作,我将得到元组 1 和元组 2..

所以我需要检查两个元组是否具有相同的 Id 。在这种情况下,我有相同的 id 。所以回显成功和在这种情况下为 1 的 ID,否则回显 false

4

3 回答 3

1

我不知道codeigniter,但我会这样做:

SELECT count(*), student_id
FROM student
WHERE email = 'xyz@gmail.com'
GROUP BY student_id

如果你只得到 ore 行,这意味着所有使用电子邮件 'xyz@gmail.com' 的学生都有相同的 id。

于 2013-07-05T19:28:41.880 回答
1

在 CodeIgniter 中,我们这样做:-

$this->db->where('email', 'xyz@gmail.com');
$this->db->group_by("student_id"); 
$query = $this->db->get('student');

//当你不选择 CodeIgniter 时假设选择所有列

于 2013-07-05T19:42:39.130 回答
0
$all_ids = array();
foreach ($query->result_array() as $row) {
  $all_ids[] = $row['id'];
}
$all_ids = array_unique($all_ids);
if (count($all_ids) == 1) {
  return array('success'=>true, 'id'=>$all_ids[0]);
} else {
  return false; 
}
于 2013-07-05T19:39:44.803 回答