页面搜索时SQL表中都多条相同的数据 怎么只选择序号最小的这条?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面搜索时SQL表中都多条相同的数据 怎么只选择序号最小的这条?相关的知识,希望对你有一定的参考价值。
页面上有一个输入的查询搜索,针对表hyz中name的。查询语句:select * from hyz where name='%"+name+"%',这样子在页面上输入“zzz”出现zzz的所有数据,但我只想选择最小的min(RenCo)的zzz一条数据即可(举例:页面输入“zzz”,那么只显示RenCo=1的这行数据),这个SQL查询语句怎么写啊?其中select * from保持不变,其它进行变化
搜索的情况很多,比如只搜索“z”,那么就要出现三条数据(zzz,zhang,zhou),都只显示RenCo最小的,也就是RenCo为(1、3、8)的三条数据。采用top 1 肯定不行,因为其它两条显示不出来。
不行的,搜索的情况很多,比如只搜索“z”,那么就要出现三条数据(zzz,zhang,zhou),都只显示RenCo最小的,也就是RenCo为(1、3、8)的三条数据。如果top 1 其它两条显示不出来。
追答SELECT name,MIN(RenCo) AS RenCoFROM hyz
WHERE name LIKE '%z%'
GROUP BY name;追问
select * from变了就查询不了,报错,也就是不能写成
SELECT name,MIN(RenCo) AS RenCo FROM,因为采用了写法是:
sql= stmt.executeQuery("select top 1 * from hyz where name='%"+name+"%' ");
if(sql.next())
while......
数据库怎样删除多条重复数据保留一条?
delete 表A where 重复的列名(可以是多列) in (select 重复的列名(可以是多列) from 表A group by 重复的列名(可以是多列) having (count(1)>1) ) where rowid!=(select min(rowid) from 表A group by 重复的列名(可以是多列)having (count(1)>1));删除重复的数据,留下rowid最小的那条! 参考技术A 一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表:
a b c d
1 2 3 4
1 5 3 5
1 2 7 9
以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9
即如下结果:
a b c d
1 2 3 4
1 5 3 5
或
a b c d
1 5 3 5
1 2 7 9
以上是关于页面搜索时SQL表中都多条相同的数据 怎么只选择序号最小的这条?的主要内容,如果未能解决你的问题,请参考以下文章