2010-09-15 6 views
0

Я использую MySQL 5.0.SQL - Как найти индекс

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

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-запрос или хранимую процедуру для этого?

Заранее спасибо.

ответ

0
SET @row=0; 
SELECT @row := @row + 1 AS Index, text1 as Text FROM test; 
1

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

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

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

+0

Спасибо за совет. – Pradip

Смежные вопросы