我想知道它们之间的区别是什么:
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
和
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
有什么区别吗?当我尝试时,他们都给出了相同的结果。
答案 0 :(得分:2)
它们是相同的IN()
只是一个使用列出所有OR
语句的简写版本。
答案 1 :(得分:1)
IN()
只会使语法更短,更容易阅读,尤其是当你有很多OR
条款时。
答案 2 :(得分:0)
您可以使用IN
轻松完成另一件事,但不能使用=
。
SELECT *
FROM `table`
WHERE `column` IN (
SELECT col_name
FROM `table2` -- or the same table
WHERE `some_column` = 5
)
所以基本上你在另一个表的子集中搜索,这有时会派上用场。
实际使用情况: