MySQL中并沒有內置的ROW_NUMBER函數,但可以通過使用變量來實現類似的功能。
假設我們有以下的示例表格:
+----+-------+
| id | name |
+----+-------+
| 1 | John |
| 2 | Alice |
| 3 | Bob |
+----+-------+
如果我們想要為每一行添加一個遞增的行號,可以使用變量來實現:
SELECT @row_number:=@row_number+1 AS row_number, id, name
FROM table_name, (SELECT @row_number:=0) AS t
ORDER BY id;
這將返回以下結果:
+------------+----+-------+
| row_number | id | name |
+------------+----+-------+
| 1 | 1 | John |
| 2 | 2 | Alice |
| 3 | 3 | Bob |
+------------+----+-------+
在上述查詢中,我們使用了一個變量@row_number
,并在SELECT語句中遞增它的值。然后將其作為新的列"row_number"返回。注意,我們還使用了一個子查詢(SELECT @row_number:=0) AS t
來初始化變量的值為0。
這樣,我們就可以為每一行添加一個遞增的行號了。