sql消除重复行问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:56:39
我用distinct消除重复行,两条重复的数据还显示一条,但是只要有三条重复的数据,他就显示两条了,请问是什么问题?
我的SQL语句

select distinct(dingdan),userid,username,userzhenshiname,actiondate,songhuofangshi,zhifufangshi,zhuangtai,new,glbz from shop_action where zhuangtai<6 and zt<>2 order by actiondate desc

这是不可能的,不管有几条重复,distinct都会显示一条,只有可能你的数据有问题

DISTINCT 关键字可从 SELECT 语句的结果中除去重复的行。如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。例如,如果在 titleauthor 中选择所有作者 ID 时未使用 DISTINCT,那么将会返回下列行(其中包括一些重复的行):

USE pubs

可能两条数据有细微的差别,比如后面有个空格之类,distinct不会出这样的乱子

看了你写的语句,查询的字段很多,可能是这么多字段中,总有一个或几个字段的值是不同的,而其它字段值可能是相同的,所以,你查出了多条“相同”的记录。对不?如果是这样,你的语句就不能用distinct 了

可能是你连续查了2个数据表的数据
如果2个数据表的数据返回结果条数不一样,那么条数少的哪一个数据表会多出几行,(因为最终条数由最大的返回结果条数决定)
这个是无法用distinct解决的

用 group by 吧