面试了几个程序员,发现他们对于 mysql 的 distinct 关键字都存在错误的理解

2020-07-20 16:01:24 +08:00
 JJstyle

都认为这是一个函数,可以这样用:

select distinct(name), age from test;

目的是给 name 去重。虽然没有报错,但是其实上面的 sql 最终被解析成:

select distinct (name), age from test;

就是说 distinct 不是一个函数,而是 select 的一部分,结果是给 name,age 的组合数据去重,name 加括号在这里没有什么意义。

是那种工作了 3~5 年工作经验的,不知道 v 友们又没有发现这个问题。

7543 次点击
所在节点    MySQL
42 条回复
dingyaguang117
2020-07-21 22:51:14 +08:00
能写出这种 SQL, 本身思维就不严谨
daimubai
2020-08-05 21:52:43 +08:00
distinct 不是函数,它是对查询的所有字段去重

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX