-- 按位与
select * from cinema WHERE id&1;
-- id先除以2然后乘2 如果与原来的相等就是偶数
select * from cinema WHERE id=(id>>1)<<1;
-- 正则匹配最后一位
select * from cinema WHERE id regexp '[13579]$';
select * from cinema WHERE id regexp '[02468]$';
-- id计算
select * from cinema WHERE id%2 = 1;
select * from cinema WHERE id%2 = 0;
-- 与上面的一样
select * from cinema WHERE mod(id, 2) = 1;
select * from cinema WHERE mod(id, 2) = 0;
-- -1的奇数次方和偶数次方
select * from cinema WHERE POWER(-1, id) = -1;
select * from cinema WHERE POWER(-1, id) = 1;
如果有其他判断方法请联系我,继续添加
效率

本来以为最后一种效率最慢,可是最后发现是正则,百思不得其解,还请大佬指点
在千万条数据下查询都没有用到索引,因此在千万级数据下,要特别注意了

本文介绍多种使用SQL来判断ID为奇数还是偶数的方法,包括按位与、位运算、正则表达式匹配及数学运算等,并对比了各种方法在大数据集上的执行效率。
1万+

被折叠的 条评论
为什么被折叠?



