和中的差异=MYSQL
可能重复: 我想知道这两者之间有什么区别:和中的差异=MYSQL,mysql,sql,database,Mysql,Sql,Database,可能重复: 我想知道这两者之间有什么区别: SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3' 以及: 有什么区别吗?当我尝试时,它们都给出了相同的结果。它们是相同的。IN只是一个简单的版本,列出了所有的OR语句。IN只是使其更简短,更易于阅读,语法,特别是当你有很多OR子句时。还有一件事你可以很容易地用IN来做,但不能用= 所以基本上你搜索另一个表的子集,这有时很方便 实际使用: 您在另一个表中有一个
SELECT * FROM table WHERE cat = 'cat1' OR cat = 'cat2' OR cat = 'cat3'
以及:
有什么区别吗?当我尝试时,它们都给出了相同的结果。它们是相同的。IN只是一个简单的版本,列出了所有的OR语句。IN只是使其更简短,更易于阅读,语法,特别是当你有很多OR子句时。还有一件事你可以很容易地用IN来做,但不能用= 所以基本上你搜索另一个表的子集,这有时很方便 实际使用: 您在另一个表中有一个可管理的用户类型列表,每个用户类型都有自己的权限,并且您希望强制该用户类型实际存在。
是的,我错了。更正。
SELECT * FROM table WHERE cat in ('cat1', 'cat2', 'cat3')
SELECT *
FROM `table`
WHERE `column` IN (
SELECT col_name
FROM `table2` -- or the same table
WHERE `some_column` = 5
)