Возможно ли получить номер строки в MySQL? Скажем, у меня есть «стол»Номер строки в mySQL
ID tag name
1 A alpha
4 B beta
5 C gamma
8 D ceta
Как я могу получить в MySQL, что, например, «C» является третьей строки в этой таблице? Последующие:
SET @pos=0;
SELECT @pos:[email protected]+1,tag FROM table ORDER BY tag ASC;
подсчитывает строки как следует. Но (извините за невежественный код)
SET @pos=0;
SELECT @pos:[email protected]+1,tag FROM table where tag='C' ORDER BY tag ASC;
дает 1 строку как результат, с позами как 0, так как это, вероятно, следует.
Есть ли способ получить «pos» как «3», как мне это нужно? (Заказ будет иметь важное значение, а также, является ли это отношение к вопросу или нет ..)
[Как узнать номер строки определенной строки в MySql?] (Http://stackoverflow.com/q/10765746/1037210). Неотвеченный вопрос, но он содержит SQL-запрос, чтобы получить номер строки определенной строки. – Lion
Таблицы не имеют номеров строк, поскольку на самом деле они не имеют порядка. В реальном мире, конечно, строки помещаются на жестком диске в некотором порядке, но это не должно означать ничего. Если вам нужны упорядоченные номера, они должны либо быть в столбце для этой цели, либо подчиняться деталям вашего предложения ORDER BY. – siride
Возможно, я просто неправильно понимаю вопрос, но что было бы неправильно с добавлением LIMIT 1 OFFSET 3 в существующий SELECT? Кстати, «номер строки» в этом случае является артефактом вашего предложения ORDER BY. Кажется, вы запрашиваете одно смещение элемента от начала ваших результатов запроса тремя (или, может быть, двумя, я не уверен). –