今天我发布了一个这样的查询的答案
SELECT * FROM table_name where column_name IN (val1,val2,...)
另一个用户发布了这样一个查询的答案
SELECT * FROM table_name where val1 IN (column_name)
正如您在此处看到的, column_name 的位置和值是互换的。
来自 Mysql 文档
expr IN(值,...)
如果 expr 等于 IN 列表中的任何值,则返回 1,否则返回 0。如果所有值都是常量,则根据 expr 的类型对它们进行评估并排序。然后使用二进制搜索完成对项目的搜索。这意味着如果 IN 值列表完全由常量组成,则 IN 非常快。
mysql> SELECT 2 IN (0,3,5,7);
-> 0
mysql> SELECT 'wefwf' IN ('wee','wefwf','weg');
-> 1
正如它清楚地表明上述(我的查询)是正确的。但上述两个查询都产生相同的输出。
另外,为什么不在Mysql 文档中列出的其他方法?
此问题可作为有关使用 IN 的规范信息源。其目的是提供详细、高质量的答案,详细说明在查询中正确使用 IN。