Mysql 不同的(c1),c2和不同的c1,c2之间有什么不同
正如标题所述,Mysql 不同的(c1),c2和不同的c1,c2之间有什么不同,mysql,Mysql,正如标题所述,DISTINCT(c1)、c2和DISTINCT c1、c2之间有什么区别 DISTINCT(c1)像函数吗?我没有发现任何手册提到DISTINCT可以是一个函数 样本输出: mysql>创建表t1(c1int,c2int); 查询正常,0行受影响(0.26秒) mysql>插入t1值(1,1)、(1,2)、(2,4)、(2,2)、(2,4); 查询正常,5行受影响(0.01秒) 记录:5个重复:0警告:0 mysql>从t1中选择c1、c2; +------+------+ |c
DISTINCT(c1)、c2
和DISTINCT c1、c2
之间有什么区别
DISTINCT(c1)
像函数吗?我没有发现任何手册提到DISTINCT
可以是一个函数
样本输出:
mysql>创建表t1(c1int,c2int);
查询正常,0行受影响(0.26秒)
mysql>插入t1值(1,1)、(1,2)、(2,4)、(2,2)、(2,4);
查询正常,5行受影响(0.01秒)
记录:5个重复:0警告:0
mysql>从t1中选择c1、c2;
+------+------+
|c1 | c2|
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 4 |
| 2 | 2 |
| 2 | 4 |
+------+------+
一组5行(0.00秒)
mysql>从t1中选择distinct(c1)、c2;
+------+------+
|c1 | c2|
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 4 |
| 2 | 2 |
+------+------+
一组4行(0.00秒)
mysql>从t1中选择不同的c1、c2;
+------+------+
|c1 | c2|
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 4 |
| 2 | 2 |
+------+------+
一组4行(0.00秒)
Hmmm。区别在于select distinct(c1),c2
在select
子句中有额外的、不需要的括号
DISTINCT
不是SQL中的函数或运算符。它是一种SELECT
语句,适用于SELECT
中的所有列。括号没有相关性
您可以将其与
UNION-ALL
中的ALL
相同的方式来考虑。不,distinct不是一个函数!它只是一种选择,类似于GROUPBY子句所做的事情
Distinct将始终应用于select中指定的整行/所有列,因此是否添加括号并不重要
最好不要使用括号,因为这样会更难阅读和理解,并且可能会误导到您在这里提出的同一个问题—它是否只适用于该列。可能重复的