DBMNG数据库管理与应用

抓住自己最有兴趣的东西,由浅入深,循序渐进地学……
当前位置:首页 > 数据库基础 > SQL语言

sqldistinct多列问题

查询单列,使用select distinct name from photos;是没有问题的。

但若想查询多列,如select distinct name,nickname,department from photos;是将三列完全相同的内容过滤掉,但凡三列有一列不同,均会列出来。
若将distinct放后面,如select nickname,department,distinct name from photos;报错,distinct必须放在开头。将distinct放到where里,也是报错。
可以使用select *, count(distinct name) from photos group by name;最后一项是多余的,不用管就行了,目的可以达到其中,group by 必须放在 order by 和 limit之前,不然会报错。

或者可以使用select * from photos where id in (select max(id) from photos group by name),但是执行效率很低,能明显感觉出数据库的处理时间。 如果数据可以保证--随着id递增,数据越新,则使用此语句可查询出最新结果。上面的语句则不保证。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号