题目:查找employees表
代码:
SELECT * FROM employees AS em
WHERE emp_no & 1
# WHERE emp_no % 2 = 1
AND em.last_name != 'Mary'
ORDER BY hire_date DESC
判断奇数:按位与 1,即&1。
1的二进制是0001,二进制奇数最后一位一定是1。与运算符:1 & 1 = 1, 1 & 0 = 0, 0 & 1 = 0, 0 & 0 = 0;所以可以保证最后一位是奇数。
判断偶数:数字 =(数字>>1)<<1。
先右移再左移后,判断与原数是否相等。二进制偶数最后一位一定是0,所以右移把0移出去,再左移把0移回来,与原数相等。而奇数最后一位是1,右移把1移出去,再左移把0移回来,与原数不相等。