我有一个名为student的表,其中包含字段[ID,NAME,EMAIL],现在我执行了如下操作:
> $query =
> $this->db->select('*')->from('student')->where('EMAIL',xyz@gmail.com');
现在我的要求是,对于上述$查询,所有学生IDS应相同。怎么做这件事...
这确实意味着我需要 check
查询,如果查询中的所有用户ID都相同
[echo'eccess'和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。所以echo成功和ID在这种情况下为1,否则为echo false
答案 0 :(得分:1)
我不知道codeigniter,但我会这样做:
SELECT count(*), student_id
FROM student
WHERE email = 'xyz@gmail.com'
GROUP BY student_id
如果您只获得矿石行,则表示所有发送电子邮件'xyz@gmail.com'的学生都具有相同的ID。
答案 1 :(得分:1)
我们喜欢这样: -
$this->db->where('email', 'xyz@gmail.com');
$this->db->group_by("student_id");
$query = $this->db->get('student');
//当你没有选择CodeIgniter时,假设选择所有列
答案 2 :(得分: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;
}