С следующей таблицей MySQL:MySQL получить позицию строки в ORDER BY
+-----------------------------+
+ 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, но это, кажется расточительным, чтобы загрузить потенциально большой набор результатов только для одной строки.
http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select –
Возможный дубликат [MySQL - Получить номер строки на выберите] (http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select) – jberryman