可能重复:
MYSQL OR vs IN 性能
我想知道有什么区别:
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
和:
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
有什么区别吗?当我尝试时,他们都给出了相同的结果。
可能重复:
MYSQL OR vs IN 性能
我想知道有什么区别:
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
和:
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
有什么区别吗?当我尝试时,他们都给出了相同的结果。
它们是相同的,只是使用列出所有语句IN()
的速记版本。OR
IN()
只是使语法更短,更容易阅读,尤其是当您有很多OR
子句时。
还有一件事你可以很容易地做到,IN
但你不能用=
.
SELECT *
FROM `table`
WHERE `column` IN (
SELECT col_name
FROM `table2` -- or the same table
WHERE `some_column` = 5
)
所以基本上你搜索另一个表的子集,这有时会派上用场。
现实生活中的使用: