我想知道我怎样才能从表中获得每一行。
我试过了:
SELECT * FROM table_name ORDER BY id DESC LIMIT 1, 1
但当然我只得到第2排而不是2,4,6,......
有解决办法吗?
提前感谢您的帮助。
答案 0 :(得分:5)
有一个可以使用的用户变量的偷偷摸摸的技巧:
SELECT * FROM table_name, (SELECT @c := 0) t
WHERE (@c := @c + 1) % 2 = 0
ORDER BY id DESC;
这是有效的,因为@c
是为每一行计算的(WHERE
子句中),我们只选择甚至记录(2,4,6,...)。 ..)通过mod %
运算符。
如果您想要奇数记录(1,3,5,...),请将...% 2 = 0
更改为...% 2 = 1
。
答案 1 :(得分:0)