我正在尝试优化这个 mysql 选择查询,但我不知道如何阅读它。想知道是否有人可以根据 WHERE 子句解释此查询的作用。
SELECT `id`, `size`, `download`, `mirror1`, `mirror2`, `mirror3`
FROM `entries`
WHERE (`flags` & '3') = '0';
最佳答案
它在标志上执行按位 AND
运算符,请在此处阅读:
http://en.wikipedia.org/wiki/Bitwise_AND#AND
二进制中的 3 是 11,因此它正在检查标志的低两位是否未设置(例如,它们为 0),因为根据 where 子句,AND 运算符的结果必须为 0。
示例(假设标志具有以下值):
Ex 1: 11101000 <-- WHERE clause would be true, since lower two bits are 0
Ex 2: 11111010 <-- WHERE clause would be false, since lower two bits are NOT 0
关于mysql - 我如何阅读这个 mysql select 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15453368/