Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
和中的差异=MYSQL_Mysql_Sql_Database - Fatal编程技术网

和中的差异=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
)