DISTINCT 后面的列名之间需要逗号吗

谁学逆向工程 2017-04-02 01:49:59
首先书上给出的语法是这样的




下面开始做实验

show create TABLE t_employee


CREATE TABLE `t_employee` (
`empno` int(11) DEFAULT NULL,
`ename` varchar(20) DEFAULT NULL,
`job` varchar(40) DEFAULT NULL,
`MGR` int(11) DEFAULT NULL,
`Hiredate` date DEFAULT NULL,
`sal` double(10,2) DEFAULT NULL,
`comm` double(10,2) DEFAULT NULL,
`deptno` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT INTO t_employee
VALUES
(7369, 'SMITH', 'CLERK', 7902, '1981-03-12', 800, NULL, 20),
(7499, 'ALLEN', 'SALESMAN', 7698, '1982-03-12', 1600, 300, 30),
(7521, 'WARD', 'SALESMAN', 7698, '1983-03-12', 1250, 500, 30),
(7566, 'JONES', 'MANAGER', 7839, '1981-03-12', 2975, NULL, 20),
(7654, 'MARTIN', 'SALESMAN', 7698, '1981-03-12', 1250, 1400, 30),
(7698, 'BLAKE', 'MANAGER', 7839, '1981-03-12', 2850, NULL, 30),
(7782, 'CLARK', 'MANAGER', 7839, '1985-03-12', 2450, NULL, 10),
(7788, 'SCOTT', 'ANALYST', 7566, '1981-03-12', 3000, NULL, 20),
(7839, 'KING', 'PRESIDENT', NULL, '1981-03-12', 5000, NULL, 10),
(7844, 'TURNER', 'SALESMAN', 7698, '1989-03-12', 1500, 0, 30),
(7876, 'ADAMS', 'CLERK', 7788, '1998-03-12', 1100, NULL, 20),
(7900, 'JAMES', 'CLERK', 7698, '1997-03-12', 950, NULL, 30),
(7902, 'FORD', 'ANALYST', 7566, '0000-00-10', 3000, NULL, 20),
(7934, 'MILLER', 'CLERK', 7782, '1981-03-12', 1300, NULL, 10);


不加逗号的时候,超过两列就报错

测验1:

测验2:

测验3:



加了逗号的时候,查询多列就不报错
...全文
309 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gggggame 2017-04-17
  • 打赏
  • 举报
回复
多个字段以 逗号 分隔 哈哈
qq_33880112 2017-04-06
  • 打赏
  • 举报
回复
不加就是别名了,肯定要加的
坚强的菜鸟 2017-04-06
  • 打赏
  • 举报
回复
肯定是需要加逗号
fcy_n 2017-04-06
  • 打赏
  • 举报
回复
语法问题,select distinct a b from tb 其实是select distinct a as b from tb,而as b又可以省略as, 多个字段必须是逗号分割
rucypli 2017-04-05
  • 打赏
  • 举报
回复
select distinct a b from tb 这个b是a的别名的意思
ACMAIN_CHM 2017-04-05
  • 打赏
  • 举报
回复
事实说明了一切。建议以标准教材为准。或者MYSQL的官方文档。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧