![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
Есть таблица с клиентами. Client
В таблице есть поля: №паспорта, ФИО, город.
Один и тот же клиент может быть вбит несколько раз.
Нужно проверить: Если № паспорта одинаковый, то у этих записей должны быть одинаковые и ФИО и город.
Если все верно, то "ОК", если нет, то "ошибка"
Неактивен
А зачем его вбивать несколько раз? Почему не достаточно одного раза?
Сделайте уникальный индекс на поле "№паспорта" и проблем с повторами не будет.
Неактивен
klow написал:
А зачем его вбивать несколько раз? Почему не достаточно одного раза?
Сделайте уникальный индекс на поле "№паспорта" и проблем с повторами не будет.
Увы, такие данные. Чтобы убедиться, что клиент один и тот же, нужна эта проверка.
Неактивен
mysql> create table t_8141(passport varchar(255),fio varchar(255),city varchar(255));
Query OK, 0 rows affected (0.32 sec)
mysql> insert into t_8141 values('1','IvanovII','moscow'),('1','Petrov','Riga'),('2','Sidorov','Tymen');
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select passport from t_8141 group by passport having count(distinct concat(fio,city)) > 1;
+----------+
| passport |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
То есть выбираем только те паспорта, у которых есть различные ФИО+ГОРОД
Неактивен