发布时间:2024-04-05 12:30:01
SQL DISTINCT 关键字需要和 SELECT 语句一起使用,用来删除结果集中所有重复的记录,仅保留唯一的一条记录。
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
+----+----------------+----------------------------+-----+-------+---------+---------+ | id | name | url | age | alexa | uv | country | +----+----------------+----------------------------+-----+-------+---------+---------+ | 1 | 百度 | https://www.baidu.com/ | 20 | 4 | 5010.5 | CN | | 2 | 淘宝 | https://www.taobao.com/ | 20 | 8 | 3996.75 | CN | | 3 | 365工具网 | http://www.365tools.cn/ | 12 | 7923 | 11.62 | CN | | 4 | Google | https://www.google.com/ | 23 | 1 | 36474 | US | | 5 | GitHub | https://github.com/ | 15 | 95 | 216.3 | US | | 6 | Stack Overflow | https://stackoverflow.com/ | 15 | 48 | 592.2 | US | | 7 | Yandex | http://www.yandex.ru/ | 11 | 53 | 591.82 | RU | | 8 | VK | https://vk.com/ | 23 | 23 | 1206 | RU | +----+----------------+----------------------------+-----+-------+---------+---------+下面的 SELECT 语法返回的记录中包含了重复的 age 和 country:
SELECT age, country FROM website ORDER BY age;执行结果:
+-----+---------+ | age | country | +-----+---------+ | 11 | RU | | 12 | CN | | 15 | US | | 15 | US | | 20 | CN | | 20 | CN | | 23 | US | | 23 | RU | +-----+---------+可以看到,age=15 和 country=US、age=20 和 country=CN 都重复出现了两次,这是因为原始表中就包含重复的记录。
SELECT DISTINCT age, country FROM website ORDER BY age;执行结果:
+-----+---------+ | age | country | +-----+---------+ | 11 | RU | | 12 | CN | | 15 | US | | 20 | CN | | 23 | RU | | 23 | US | +-----+---------+可以看到,age=15 和 country=US、age=20 和 country=CN 都只出现了一次,重复记录被去除。