自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在MySQL查詢結(jié)果集中得到記錄行號

數(shù)據(jù)庫 MySQL
MySQL查詢是數(shù)據(jù)庫操作過程中比較重要的一個環(huán)節(jié),數(shù)據(jù)庫的查詢也是數(shù)據(jù)庫功能性好的一個體現(xiàn),那么如何在如何在MySQL查詢結(jié)果集中得到記錄行號呢?

如果需要在查詢語句返回的列中包含一列表示該條記錄在整個結(jié)果集中的行號, ISO SQL:2003 標(biāo)準(zhǔn)提出的方法是提供 ROW_NUMBER() / RANK() 函數(shù)。 Oracle 中可以使用標(biāo)準(zhǔn)方法(8i版本以上),也可以使用非標(biāo)準(zhǔn)的 ROWNUM ; MS SQL Server 則在 2005 版本中提供了 ROW_NUMBER() 函數(shù);但在 MySQL 中似乎還沒有這樣的系統(tǒng)自帶功能。雖然 LIMIT 可以很方便的對返回的結(jié)果集數(shù)量和位置進行過濾,但過濾出來的記錄的行號卻沒辦法被 SELECT 到。據(jù)說 MySQL 是早就想增加這個功能了,但我是還沒找到。

解決方法是通過預(yù)定義用戶變量來實現(xiàn):

set @mycnt = 0;

select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol;

這樣查詢出來的結(jié)果集中 ROWNUM 就保存了行編號信息。這個行編號信息的某種用途在于當(dāng)你需要根據(jù)需要對數(shù)據(jù)按照某種規(guī)則排序并取出排序之后的某一行數(shù)據(jù),并且希望知道這行數(shù)據(jù)在之前排序中的位置時就用得著了。比如:

set @mycnt = 0;

select * from (

select (@mycnt := @mycnt + 1) as ROWNUM , othercol

from tblname order by othercol

) as A where othercol=OneKeyID;

當(dāng)然你也可以通過創(chuàng)建臨時表的方法把查詢結(jié)果寫到某個擁有 auto_increment 字段的臨時表中再做查詢,但考慮到臨時表在 MySQL master / slave 模式下可能產(chǎn)生的問題,用這樣臨時用戶定義變量的方式來計算查詢結(jié)果集每一行對應(yīng)的行號還是更為簡潔 -- 除非你愿意在 PHP 或其他語言腳本中對返回的整個結(jié)果集再作處理。

【編輯推薦】
 

  1. 在SUSE10環(huán)境下安裝和配置MySQL數(shù)據(jù)庫
  2. 對抗MySQL數(shù)據(jù)庫解密高手
  3. 一種特別簡單的MySQL數(shù)據(jù)庫安裝方法
責(zé)任編輯:迎迎 來源: 賽迪網(wǎng)
相關(guān)推薦

2010-11-25 15:36:09

MySQL查詢結(jié)果集

2010-11-09 12:20:53

SQL Server查

2010-11-25 11:57:42

MySQL查詢行號

2010-11-25 11:51:53

MySQL查詢行號

2009-02-16 18:27:09

2011-05-05 11:12:11

EFSQL

2010-11-25 14:45:19

MySQL查詢結(jié)果

2010-06-10 17:59:05

2010-11-25 14:05:15

MySQL查詢中間記錄

2010-11-25 13:56:30

MySQL查詢結(jié)果

2010-11-25 15:43:02

MYSQL查詢重復(fù)記錄

2009-04-29 16:05:23

Oracle連接輸出SQL

2010-05-27 17:16:20

MySQL數(shù)據(jù)庫

2020-09-30 06:49:25

MySQL查詢刪除

2023-05-26 15:46:23

數(shù)據(jù)結(jié)構(gòu)布隆過濾器開發(fā)

2010-05-31 16:46:40

2010-10-13 16:59:28

mysql查詢

2020-09-08 08:44:36

日志記錄基礎(chǔ)設(shè)施安全漏洞

2009-11-24 19:40:07

PHP關(guān)聯(lián)數(shù)組查詢結(jié)果

2010-11-25 15:30:15

MySQL查詢結(jié)果
點贊
收藏

51CTO技術(shù)棧公眾號