MySQL получает позицию строки в ORDER BY

С помощью следующего MySQL таблица:

+-----------------------------+
+ id INT UNSIGNED             +
+ name VARCHAR(100)           +
+-----------------------------+

Как мне выбрать одиночную строку И ее положение среди других строк в таблице при сортировке по имени 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, но загружать потенциально большой набор результатов только для одной строки.

77
задан Ry- 12 June 2013 в 22:54
поделиться

1 ответ

может быть то, что вам нужно, это добавить синтаксис

LIMIT

, поэтому используйте

SELECT * FROM tbl ORDER BY name ASC LIMIT 1

, если вам нужна только одна строка..

-6
ответ дан 24 November 2019 в 10:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: