Проблем:
Искате да показвате недублиращи се записи в SQL.
Пример:
Нашата база данни има таблица с име City
с данни в колоните id
, name
и country
.
id | име | държава |
---|---|---|
1 | Мадрид | Испания |
2 | Барселона | Испания |
3 | Варшава | Полша |
4 | Краков | Полша |
Нека получим имената на държавите без дубликати.
Решение:
Ще използваме ключовата дума DISTINCT
. Ето заявката:
SELECT DISTINCT country FROM City;
Ето резултата от заявката:
държава |
---|
Испания |
Полша |
Дискусия:
Ако искате заявката да връща само уникални редове, използвайте ключовата дума DISTINCT
след SELECT
. DISTINCT
може да се използва за извличане на уникални редове от една или повече колони. Трябва да посочите колоните след DISTINCT
ключова дума.
Как работи под капака? Когато заявката се изпълни, първо се избира целия набор от данни, след това DISTINCT
премахва редовете, които се дублират предвид избраните колони.
В нашия пример и Испания, и Полша се срещат по два пъти в таблицата. Въпреки това, след прилагане на ключовата дума DISTINCT
, всеки от тях се връща само веднъж.