这是我的示例查询。
SELECT * FROM `table` WHERE `id` = '1' OR `id` = '8' OR `id` = '12'
WHERE部分有更快的方法吗?
答案 0 :(得分:5)
您可以使用IN子句:
SELECT *
FROM `table`
WHERE `id` IN ('1', '8','12')
由于查询优化器会将此查询转换为与OR序列非常相似的执行计划,因此它不会真正产生性能差异。这是关于美学和/或更少的打字:)
答案 1 :(得分:3)
不确定它是否运行得更快,但它可能读得更干净:
SELECT * ... WHERE ID in ('1', '8', '12' )
答案 2 :(得分:1)
要检查同一字段的where子句中的多个潜在值,您需要使用IN
。
在您的示例中,您将使用:
SELECT *
FROM `table`
WHERE `id` IN (1, 8, 12)
此功能对于使用子查询也很有用,例如:
SELECT *
FROM `table`
WHERE `id` IN (
SELECT `id`
FROM `table2`
)