mysql排序两位数_MySQL_Mysql row number()排序函数的用法和注意,虽然使用不多,但是也有情况 - phpStudy...
Mysql row number()排序函數(shù)的用法和注意
雖然使用不多,但是也有情況是需要在mysql 里面寫語句開發(fā)功能的。在sql server 使用慣了,習慣了使用row_number() 函數(shù)進行排序,但是mysql 確沒有這樣一個函數(shù)。然后找到了po主寫的一篇 文章。通過變量賦值來查詢的。(PS 我測試的版本是mysql 5.6)
先建表
CREATE TABLE `test` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Col1` varchar(50) DEFAULT NULL,
`Col2` varchar(50) DEFAULT NULL,
`Col3` int(11) DEFAULT NULL,
`Col4` float DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
然后插入測試數(shù)據(jù),使用po主介紹的方法來測試
insert into test(Col1,Col2,Col3,Col4) values (1,2,3,4),(1,2,6,5),(1,2,7,8),(1,"激發(fā)",5,7);
delimiter //
select @row:=case when @row is null then 1 else @row+1 end as RNr,
ID,Col1,Col2,Col3,Col4 from test ;
//
delimiter ;
結(jié)果查詢出結(jié)果是
查詢出來的記過,Rnr為什么都是1 呢?因為對于本次查詢來說,@row 這個變量的值,一直都是null ,所以根據(jù)case 的判別式來看的話,就只能是1 了。引起了這種現(xiàn)象。但是再執(zhí)行,就正常的了,我們將同樣的腳本
再執(zhí)行一次,查出來應該就是2345了
測試驗證確實如此,由此可見。變量在本次會話里面是一直存在的,并且每次會沿用,所以就出現(xiàn)前面的那種情況。
其實對應的解決方法也很簡單,既然因為每個會話都會用同一個值,那么只需要在開始的時候賦初值就可以解決問題了,比如我們這個例子在開始的時候?qū)?set @row = 0; 加上這句,那么每次執(zhí)行,都會先賦初值,當然就可以得到一致的執(zhí)行效果了。
這個測試告訴了我,在這個數(shù)據(jù)庫里面,控制變量初始值hin重要。
以上所述是小編給大家介紹的Mysql row_number()排序函數(shù)的用法和注意 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對phpstudy網(wǎng)站的支持!相關閱讀:
Win8電腦系統(tǒng)出現(xiàn)藍屏故障代碼0x00000019的解決辦法
SQL Server 2005附加數(shù)據(jù)庫時Read-Only錯誤的解決方案
js浮點數(shù)保留兩位小數(shù)點示例代碼(四舍五入)
jQuery實現(xiàn)鼠標劃過添加和刪除class的方法
css實現(xiàn)葉子形狀loading效果
Linux下常用的一些解壓縮命令匯總
Android下拉列表(Spinner)效果(使用C#和Java分別實現(xiàn))
網(wǎng)頁從彈窗頁面單選框傳值至父頁面代碼分享
Android氣泡效果實現(xiàn)方法
javascript正則表達式中分組詳解
Windows 10 10134手機版運行畫面曝光
C#實現(xiàn)根據(jù)數(shù)字序號輸出星期幾的簡單實例
symfony2.4的twig中date用法分析
MYSQL拒絕訪問報錯not allowed to connect
總結(jié)
以上是生活随笔為你收集整理的mysql排序两位数_MySQL_Mysql row number()排序函数的用法和注意,虽然使用不多,但是也有情况 - phpStudy...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 字符串分割_嗯哼vue组件tag
- 下一篇: mysql bin.000047_mys