SQL - Как найти индекс

0

Я использую MySQL 5.0.

У меня есть таблица со следующей структурой и данными.

CREATE TABLE `test` 
(
      `text1` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `test` (`text1`) 
VALUES ('ABC'), ('PQR'), ('XYZ'), ('LMN');

Я хочу отобразить следующий вывод:

Index     Text
1         ABC
2         LMN
3         PQR
4         XYZ

В структуре таблицы я не хочу создавать новый столбец.

Как написать SQL-запрос или хранимую процедуру для этого?

Спасибо заранее.

Теги:

3 ответа

0
Лучший ответ
SET @row=0;   
SELECT @row := @row + 1 AS Index, text1 as Text FROM test;
1

Это не ответит на ваш вопрос, но вы должны действительно пересмотреть то, о чем вы просите.

Нет индекса. Вы можете напечатать номер для каждой строки в коде приложения, но это число будет бессмысленным. Без фактического поля индекса в вашей таблице вы не можете быть уверены, что означает каждый номер. Например, если два пользователя одновременно удаляют строку "2", оба LMN и PQR могут быть удалены. Это неожиданно и опасно.

Вам также не гарантируется получение строк в том же порядке каждый раз, когда вы выполняете запрос, если у вас нет предложения ORDER BY.

  • 0
    Спасибо за совет.
0
 select @rownum:=@rownum+1 Id, text1
 from test, (SELECT @rownum:=0) r 
 order by text

Ещё вопросы

Сообщество Overcoder
Наверх
Меню