重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sqlserver中输出行号:row_number over()
主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站开发、程序开发、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都做网站、成都网站设计、成都外贸网站建设、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。
而在mysql中没有排序函数,应该使用:
SET @rownum = 0;
SELECT (@rownum := @rownum + 1) AS ROWNUM , 表名.* FROM 表名;
验证
看你的意思行号就是显示顺序号,你的查询结果可以按id升序排序(order by id),这样查询结果的顺序就是显示的顺序,这个行号可以在程序里加上,不用在数据库操作。另外最好是加上一个排序值得字段,这样可以随时调整显示顺序。
mysql本身是没有行号的。要想得到查询语句返回的列中包含一列表示该行记录在整个结果集中的行号可以通过自定义set一个变量,然后每条记录+1的方式,返回这个变量的值。
举例:
表名为:s_ave
表的内容:
Ave Avename
1 d
3 e
4 a
6 b
5 e
我们要查询 ave=6 的行号:
set @mytemp = 0;
select * from (
SELECT (@mytemp:=@mytemp+1) as newid,Ave,Avename FROM s_ave
) AS A
WHERE A.Ave=6
自己试一下吧,这里 mytemp 的值就是行号
转自:
其实如果你的表里面有个自增长的字段如果从1开始哪行就是ID多少
假如你是升序排序吧,
select count(*)
from (select * from tab order by keyword_field)
where keyword_field = keyword;
这个只是个思路了,要考虑效率的话,把子查询拆了吧!
获取第一个B的id
select id from 表
where type='b'
order by id
limit 0,1 --这个就是mysql的行数筛选,同msSQL的top效果.0指要从0+1位开始,1指返回一行.
取到这个以后再联回原表,或得当成子查询的条件,让ID小于筛选出的这个ID就行了.