我有一张用户表。哪些数据是很多重复数据。我想保留所有这些重复数据。所以我有3个条件
例如
ID |电子邮件|图片
1 | ba@mail.com | img.jpg
2 | ba@mail.com | NULL 的
3 | ba@mail.com | img2.jpg
4 | ba@mail.com | NULL 的
5 | aa@mail.com | NULL 的
那么如何获取这些重复帐户的ID,但优先处理图片不是空的,并优先考虑最新的ID? (我希望它返回'3')
我在这里尝试代码
public class OtherScript : MonoBehaviour
{
private static OtherScript instance;
public static OtherScript Instance { get { return instance; } }
private void Awake()
{
instance = this;
}
public void DoSomething()
{
Debug.Log("Call");
}
}
如果帐户重复,它的效果很好,并且它们都在图片列上为NULL。但是当帐户没有复制或复制时它不能正常工作,但其中一个图片不是空的。
这里的错误代码: 错误号码:1096 没有使用表格
谢谢!
答案 0 :(得分:1)
这可能对你有帮助
//in below query $emil is your input taht you need to find duplicate
$q=$this->db->query("SELECT MAX(id) AS id FROM users WHERE picture IS NOT NULL AND email = '$email');
$id=$q->row()->id;
答案 1 :(得分:1)
您应该将图片移动到另一个表并在那里使用user.id作为外键。无论如何这听起来像你想要的:
$this->db->select('max(id)');
$this->db->where('(email = "$email" and picture is not null) or email = "$email"');
$result = $this->db->get('users')->row();
答案 2 :(得分:0)
最后刚刚完成了一些棘手的棘手代码
$this->db->select_max('id');
$this->db->from('users');
$this->db->where(array('email' => $email, 'picture IS NOT NULL' => NULL));
if($this->db->get()->row('id') >= 1){
$this->db->select_max('id');
$this->db->from('users');
$this->db->where(array('email' => $email, 'picture IS NOT NULL' => NULL));
return $this->db->get()->row('id');
} else {
$this->db->select_max('id');
$this->db->from('users');
$this->db->where('email',$email);
return $this->db->get()->row('id');
}
这非常有效。谢谢大家的帮助!
答案 3 :(得分:0)
尝试使用这3个条件,让我知道它是否有效。
$ this-> db-> select(GROUP_CONCAT(id),email,GROUP_CONCAT(picture));
$这 - > DB-> GROUP_BY( '电子邮件');
$这 - > DB-> ORDER_BY( '画面', 'DESC');