У меня есть таблица пользователей. В каких данных много дубликатов данных. Я хочу сохранить все эти повторяющиеся данные. Итак, у меня есть 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
Итак, как получить идентификатор этой дублированной учетной записи, но приоритет изображения не равен нулю и приоритет последнего идентификатора? (Я хочу, чтобы он возвращал "3")
Здесь я пробую код
$this->db->select('id');
$this->db->from('users');
$this->db->where('email', $email);
$query0 = $this->db->get(); if($query0->num_rows() == 1){
return $query0->row('id');
} else {
$this->db->select('id');
$this->db->from('users');
$this->db->where(array('email' => $email, 'picture IS NOT' => NULL));
$query1 = $this->db->get();
if($query1->num_rows() == 1){
return $query1->row('id');
} else {
$this->db->select('id');
$this->db->from('users');
$this->db->where('email', $email);
$this->db->limit('1'); return $this->db->get()->row('id');
}
Он работает хорошо, если дубликат аккаунта, и оба из них с NULL на картинке колонка. Но это не сработает, если учетная запись не дублирует ИЛИ не дублирует, но у одного из них есть изображение не null.
Здесь код ошибки: Номер ошибки: 1096Нет используемых таблиц
Спасибо!
Это может вам помочь
Скорее всего, вы должны переместить фотографии в другую таблицу и использовать user.id в качестве внешнего ключа. В любом случае это звучит так, как вы хотите:
Наконец, просто сделанный с каким-то грязным n сложным кодом
Это работает очень хорошо. Спасибо за помощь!
Попробуйте использовать эти 3 условия и сообщите мне, если они будут работать.
$ this- > db- > select (GROUP_CONCAT (id), email, GROUP_CONCAT (картинка));
$ this- & Гт db- & Гт group_by ( 'электронная почта');$ this- & Гт db- & Гт order_by ( 'картинка', 'DESC'); р >