MySQL按順序獲得行位置使用以下MySQL表:+-----------------------------++ id INT UNSIGNED ++ name VARCHAR(100) ++-----------------------------+如何選擇單株行及其在表中其他行中的位置(按name ASC..因此,如果表數據如下所示,則按名稱排序時:+-----------------------------++ id | name ++-----------------------------++ 5 | Alpha ++ 7 | Beta ++ 3 | Delta ++ ..... ++ 1 | Zed ++-----------------------------+如何選擇Beta得到該行當前位置的行?我正在尋找的結果集如下所示:+-----------------------------++ id | position | name ++-----------------------------++ 7 | 2 | Beta ++-----------------------------+我可以做一個簡單的SELECT * FROM tbl ORDER BY name ASC然后枚舉PHP中的行,但是僅僅為一行加載一個可能很大的結果集似乎是浪費的。
3 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
SELECT `id`, (SELECT COUNT(*) FROM `table` WHERE `name` <= 'Beta') AS `position`, `name`FROM `table`WHERE `name` = 'Beta'

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
COUNT
WHERE
SELECT * FROM tbl WHERE name = 'Beta'
SELECT COUNT(1) FROM tbl WHERE name >= 'Beta'
添加回答
舉報
0/150
提交
取消