SQL检索,但检索结果中有某字段内容重复的数据只保留1条显示
问题描述:用“关键词”检索一个表,查询结果中重复数据(某个字段内容重复)只显示1条。想知道SQL语句要怎么写?表AIDCodeName1a234手机2b342手机膜3a2...
问题描述:用“关键词”检索一个表,查询结果中重复数据(某个字段内容重复)只显示1条。想知道SQL语句要怎么写?
表A
ID Code Name
1 a234 手机
2 b342 手机膜
3 a234 手机屏
4 c325 电话机
5 b864 手机
6 a234 翻盖手机
7 c325 手机充电宝
检索“手机”这个关键词,将Code重复只取1条,并按Name字数从短到长排序,想要得到的查询结果:
Code Name
a234 手机
b864 手机
b342 手机膜
c325 手机充电宝
因为a234查询结果有3条,但只要取第1条,这个SQL查询语句应该怎么写?
(好像去重复语句不能显示其它字段)
由于每天7、8千次的检索量,而且这个表的数据量有40万条记录,所以希望有一个高速的SQL语句。
我自己写的SQL语句:SELECT Code,C_Name FROM 表A where ID in(select min(ID) from 表A where C_Name like '%手机%' group by C_Code) order by len(C_Name) asc 但是检索结果不准确,有漏掉的。想用EXISTS替换IN但不知怎么弄? 展开
表A
ID Code Name
1 a234 手机
2 b342 手机膜
3 a234 手机屏
4 c325 电话机
5 b864 手机
6 a234 翻盖手机
7 c325 手机充电宝
检索“手机”这个关键词,将Code重复只取1条,并按Name字数从短到长排序,想要得到的查询结果:
Code Name
a234 手机
b864 手机
b342 手机膜
c325 手机充电宝
因为a234查询结果有3条,但只要取第1条,这个SQL查询语句应该怎么写?
(好像去重复语句不能显示其它字段)
由于每天7、8千次的检索量,而且这个表的数据量有40万条记录,所以希望有一个高速的SQL语句。
我自己写的SQL语句:SELECT Code,C_Name FROM 表A where ID in(select min(ID) from 表A where C_Name like '%手机%' group by C_Code) order by len(C_Name) asc 但是检索结果不准确,有漏掉的。想用EXISTS替换IN但不知怎么弄? 展开
2个回答
展开全部
检索结果有漏掉?请楼主举例
我用联合查询的例子,楼主也可参考一下
SELECT a.Code, a.Name FROM 表A as a right join
(select min(ID) as ID from 表A where Name like '%手机%' group by Code) as b
on a.ID = b.ID order by len(a.Name) asc
有问题可私信
我用联合查询的例子,楼主也可参考一下
SELECT a.Code, a.Name FROM 表A as a right join
(select min(ID) as ID from 表A where Name like '%手机%' group by Code) as b
on a.ID = b.ID order by len(a.Name) asc
有问题可私信
追问
跟我写的SQL查询结果一样(结果总条数一样,内容有一点小差异),还是有漏掉的。
比如:
Code Name
a234 手机
b864 手机
只显示其中一条,很奇怪。实际上Name字段内容为“手机”这个有6、7条(Code不一样),但查询结果都只显示1条。
你有Q吗?
追答
我的qq是452223101
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询