2010-09-15 92 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 2010-09-15 07:39:56

0
select @rownum:[email protected]+1 Id, text1 
from test, (SELECT @rownum:=0) r 
order by text 
+0

非常感謝。 – Pradip 2010-09-15 06:42:47