2 qq 28701323 qq_28701323 于 2017.09.05 11:15 提问

Sql语句distinct与order by同时使用的问题

distinct与order by同时使用的时候,排序的字段必须出现在查询列中,可是为什么我没这么做还是查询成功了呢.
图片说明
然而同样的表结构放到另外一个数据库里就很正常的提示语法错误.
是与数据库版本有关系么,使用错误的语法查询成功的是mysql 5.5,正常报错的是mysql 5.777

3个回答

Sweet__dream
Sweet__dream   2017.09.05 14:33
已采纳

distinct 和 order by 是可以一起用的。
distinct :消除重复行 order by:排序
同时使用时,**先消除重复行,然后排序**

Sweet__dream
Sweet__dream 回复苏坡叉叉: 采纳评论此贴的某一评论就可以了
3 个月之前 回复
qq_28701323
qq_28701323 在5.7里面查询是这样的 ![图片说明]()http://img.ask.csdn.net/upload/201709/05/1504594889_796314.png 查过了确实是5.7以后的版本不兼容,在配置文件里加上" sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES " 就好了 谢谢
3 个月之前 回复
qq_28701323
qq_28701323   2017.09.05 15:09

找到解决办法了怎么结束此贴啊.......

Simor
Simor   2017.09.05 15:50

distinct: 消除重复的行
order by : 排序

Csdn user default icon
上传中...
上传图片
插入图片