MySQL - выберите номер строки записи - PullRequest
3 голосов
/ 23 ноября 2011

У меня есть таблица в MySQL, заполненная следующим образом.Теперь мне нужно выбрать номер строки записи в ее отсортированном порядке.Например, номер строки слов, начинающихся с 'c', должен быть 4.

Words
=====
coffee
banana
apple
cherry
blackberry

. Я попытался выполнить следующий запрос, но получил неправильные результаты.Здесь dict - это имя таблицы, а words - это имя столбца.

SELECT @rownum:=@rownum + 1 id FROM (SELECT * FROM dict ORDER BY words) d,(SELECT @rownum:=0) r WHERE d.words LIKE CONCAT('c','%')

Для приведенного выше запроса я получаю номера строк для внешнего запроса.Но я хочу номера строк внутреннего запроса.Я не знаю, как это получить.

Любая помощь приветствуется.Спасибо.

1 Ответ

8 голосов
/ 23 ноября 2011

Попробуйте это возможно:

SET @rownum = 0;
SELECT id 
FROM (SELECT *, @rownum:=@rownum + 1 AS id FROM dict ORDER BY words) d
WHERE d.words LIKE CONCAT('c','%')

Как один запрос, попробуйте это:

SELECT id 
FROM (SELECT *, @rownum:=@rownum + 1 AS id FROM dict, (SELECT @rownum:=0) r ORDER BY words) d
WHERE d.words LIKE CONCAT('c','%')
...