我有一组行(它实际上是过滤和排序的 mysql 表)。
我还有一组整数,例如 (5,9,12,67,2,3),我想将其用作行号。
问题:使用这些数字从该集合中获取行的更好方法是什么?
示例:我有一组 15 行。和数字(1,5,7)。我怎样才能得到第 1、第 5 和第 7 行?
抱歉,我只是唱了起来,不知道回答的好习惯,所以我会试试这个:
如果您有 auto_increment 索引,请使用它?
如果不是,您可以制作任意数字,例如
SELECT @currentRow := @currentRow + 1 AS row_number, *
FROM table, (SELECT @currentRow:=0) as init
WHERE row_number IN 1,5,7
(WHERE 出了点问题)
是的,我明白了,但@Epsiloncool 似乎做得更快。
三重选择可帮助您获得:
SELECT * FROM
(SELECT *, @currentRow := @currentRow + 1 AS row_number
FROM table t, (SELECT @currentRow := 0) AS init) AS table
WHERE cdees.row_number IN 1,5,7
尝试使用此代码 select * from (SELECT *, @rowid:=@rowid+1 as rowid FROM table, (SELECT @rowid:=0) as init WHERE ... order by ...) t where t.rowid在(...一组数字...)