我正在清理别人的代码。在通过生成非常复杂的 SQL 查询的非常复杂的系统时,我看到了 IN() WHERE 子句的很多用法:
SELECT * FROM table
WHERE field1 IN( 1, 2, 3, 4, 5 )
AND type IN( 1, 2, 3 )
... 等等。像这样组装一系列对性能更好吗field = 1 OR field = 2 OR...
:
SELECT * FROM table
WHERE ( field1 = 1 OR field1 = 2 OR field1 = 3 OR field1 = 4 OR field1 = 5 )
AND ( type = 1 OR type = 2 OR type = 3 )
还是使用 IN() 更好?即使是单个值,例如type IN(1)
?