sqlserver中輸出行號:row_number over()
主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開發(fā)、程序開發(fā)、微網(wǎng)站、微信小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設(shè)項目的能力。
而在mysql中沒有排序函數(shù),應(yīng)該使用:
SET @rownum = 0;
SELECT (@rownum := @rownum + 1) AS ROWNUM , 表名.* FROM 表名;
驗證
看你的意思行號就是顯示順序號,你的查詢結(jié)果可以按id升序排序(order by id),這樣查詢結(jié)果的順序就是顯示的順序,這個行號可以在程序里加上,不用在數(shù)據(jù)庫操作。另外最好是加上一個排序值得字段,這樣可以隨時調(diào)整顯示順序。
mysql本身是沒有行號的。要想得到查詢語句返回的列中包含一列表示該行記錄在整個結(jié)果集中的行號可以通過自定義set一個變量,然后每條記錄+1的方式,返回這個變量的值。
舉例:
表名為:s_ave
表的內(nèi)容:
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 的值就是行號
轉(zhuǎn)自:
其實如果你的表里面有個自增長的字段如果從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的行數(shù)篩選,同msSQL的top效果.0指要從0+1位開始,1指返回一行.
取到這個以后再聯(lián)回原表,或得當(dāng)成子查詢的條件,讓ID小于篩選出的這個ID就行了.