В данной статье мы рассмотрим способ поиска повторяющихся элементов в таблице.
Для начала создадим таблицу в нашей БД (для выполнения примеров можно использовать ресурс – http://sqlfiddle.com/):
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(20),
last_name VARCHAR(20),
email VARCHAR(100)
);
И добавим в неё данные:
insert into customers VALUES(1, 'One', 'First', 'test1@mail.com');
insert into customers VALUES(2, 'Two', 'Second', 'test2@mail.com');
insert into customers VALUES(3, 'Three', 'Third', 'test3@mail.com');
insert into customers VALUES(4, 'Four', 'Fourth', 'test4@mail.com');
insert into customers VALUES(5, 'Five', 'First', 'test5@mail.com');
Проверим данные:
select * from customers;
В результате мы видим следующее:
id | first_name | last_name | |
---|---|---|---|
1 | One | First | test1@mail.com |
2 | Two | Second | test2@mail.com |
3 | Three | Third | test3@mail.com |
4 | Four | Fourth | test4@mail.com |
5 | Five | First | test5@mail.com |
Как мы можем видеть, у клиентов с id 1 и 5 одинаковые фамилии.
Попробуем выполнить следующий запрос:
SELECT
last_name
FROM
customers
GROUP BY last_name
HAVING COUNT(*) > 1;
Результат:
last_name |
---|
First |
В данной статье мы рассмотрели способ поиска повторяющихся значений в SQL.