假设我有一个包含一列的表 - 称为'person',其中包含一个名称列表。我想根据他的索引找到一个特定的人。
我尝试使用sql变量来跟踪每个列索引,但问题是 - 如果我有一个包含5个记录的表,那么它将始终输出第5个记录。
SET @row_num = 0; SELECT @row_num := @row_num + 1 as row1 ,person FROM table;
SELECT row1 from table WHERE person = 'name'
答案 0 :(得分:1)
我建议更改数据库,为row_id添加第二列。这是一种相当普遍的做法。然后你可以使用
SELECT * from table WHERE row_id = 3;
这将返回第三行。
答案 1 :(得分:0)
另一种最好的方法是通过TEMPORARY TABLE
,如下所述
创建临时表
create temporary table temptab(ID INT NOT NULL AUTO_INCREMENT,Person VARCHAR(30))
然后将数据作为
插入临时表insert into temptab(Person) select Person from mytable
然后从临时表中选择特定的索引人名,如
select Person from temptab where ID = 5