不确定是什么场景会用到这种写法。对于 where id<=2<=id1,内部执行过程,其实是 where (id<=2)<=id1。也就是:
1.先执行判断id<=2得到结果0或1
- 0 表示 false,id 列大于 2 的值就会得到这个结果,比如 id 列是 3 ,那么 3<=2 得到的结果就是 0 了。
- 1 表示 true,id 列小于等于 2 的值就会得到这个结果,比如 id 列是 1或者2 ,那么得到的结果就是 1 了。
2.再用上一步的结果值0或1,去和 id1 列进行比较。得到最终的输出值。
结论:除非是业务特殊需要,而且很确定自己的业务场景就需要这种非常规 SQL 写法、不担心产生歧义,才去使用它;否则,不建议使用该写法。