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但不知怎么弄?
展开
 我来答
zx198799
推荐于2017-10-06 · TA获得超过1225个赞
知道小有建树答主
回答量:509
采纳率:100%
帮助的人:282万
展开全部
检索结果有漏掉?请楼主举例

我用联合查询的例子,楼主也可参考一下
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouge870103
2014-10-27 · TA获得超过1112个赞
知道小有建树答主
回答量:724
采纳率:0%
帮助的人:500万
展开全部
SELECT TOP 100 CODE,NAME FROM 表 WHERE NAME LIKE '%手机%'
GROUP BY CODE,NAME
更多追问追答
追问
这个是不对的。GROUP BY后面只要CODE,还有排序问题?
追答
加TOP是为了减少数据量,客户端模糊查询很少会显示全部数据的。优化在语句上我想不到有什么需要特别注意的。数据库的结构应该才是优化的重点吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式