首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MySQL 查詢結果自動添加行號(序號)欄位技巧

     編輯:DB2 教學

MySQL 查詢結果自動添加行號(序號)欄位技巧

在 MySQL 中為查詢結果動態生成遞增序號,無需應用層處理,單條 SQL 即可實現:

SELECT (@rowNO := @rowNO + 1) AS rowno, field1, field2, field3
FROM (
    SELECT field1, field2, field3
    FROM table_name
    WHERE field3 = '2012-04-21'
) a,
(SELECT @rowNO := 0) b;

原理解析

  1. 子查詢 a:先篩選基礎數據集。
  2. 衍生表 b:初始化用戶變數 @rowNO = 0。
  3. 交叉連接:MySQL 依序掃描 a 的每一行,同時累加 @rowNO,形成連續行號。

注意事項

  • 變數初始化必須放在 FROM 子句中,SELECT 列表中引用才生效。
  • MySQL 8.0+ 建議改用窗口函數 ROW_NUMBER() OVER (),語義更清晰、效能更穩定。
  • 若需分組內連續編號,可結合 PARTITION BY 使用窗口函數。

MySQL 8.0+ 現代寫法

SELECT ROW_NUMBER() OVER () AS rowno, field1, field2, field3
FROM table_name
WHERE field3 = '2012-04-21';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved