是否可以创建一个返回ID(自动增量整数)可被4整除的行的查询?
从mydatabase中选择*,其中id为4,由id asc。
除以例如我想得到id为4,8,12的行等等。
编辑:
作为完整性的附加信息,如果我需要第1,5,9行等,该怎么办?
答案 0 :(得分:12)
这里%do如果你的id除以4并且它没有提醒意味着等于0那么它会给你一个结果。
SELECT * FROM table WHERE (id % 4) = 0;
如果您需要1,5,9,那么您需要id-1%4
这意味着你需要4 + 1 = 5,8 + 1 = 9所以你需要做((id-1)%4
记得不要忘记这样放(id-1)。因为没有它,它将遵循数学规则并先做1%4
SELECT * FROM user_rules where ((id-1) % 4)=0 limit 0,4
答案 1 :(得分:2)
您也可以使用按位运算符&
,因为4是2的幂。
您可以将% 4
替换为& (4 - 1)
,使& 3
在查询中使用。
<强>查询强>
SELECT
*
FROM
[table]
WHERE
(id & 3) = 0
答案 2 :(得分:1)
这似乎已经太容易了......
SELECT *
FROM table
WHERE id % 4 = 0