select * from table where column1 < 1000 union select * from table where column2 > 1000
select * from table where column1 < 1000 or column2 > 1000
这俩有什么区别?
(这会儿没在电脑跟前,按感觉两个的结果应该是一样的)
select * from table where column1 < 1000 union select * from table where column2 > 1000
select * from table where column1 < 1000 or column2 > 1000
这俩有什么区别?
(这会儿没在电脑跟前,按感觉两个的结果应该是一样的)
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
UNION
会让 mysql 查询table
两次,并且将结果集再进行一次合并。如果结果集比较大,mysql 还会用到外存储的临时表来将两个结果集暂存、合并、输出。用
OR
就永远不会有这个问题,最多就是做一次查询,所以它一定会优于UNION
。P.S. 真爱生命,远离
UNION
。