SQL在WHERE子句中选择IN与LIKE

ita*_*shi 1 sql select where-clause sql-like

哪一个性能更快?

SELECT field1, field2, field3, field4
FROM MyTable
WHERE field5 LIKE '%AL'
Run Code Online (Sandbox Code Playgroud)

SELECT field1, field2, field3, field4
FROM MyTable
WHERE field5 IN ('AAL', 'IAL')
Run Code Online (Sandbox Code Playgroud)

或者它没有任何区别?

Thi*_*ilo 6

您的里程可能会有所不同,但第二个应该更快,因为它是两个索引支持的查找,而不是完整的索引扫描.如果没有field5的索引,则无关紧要(两种情况下都是全表扫描).

  • @casperOne:对语言学的迂腐解构与答案的有效性无关,特别是在你断言它是"没有根据的"的情况下.更不用说我不同意你的前提,并认为答案的语言结构是合法的.我个人不读半个答案,并认为下半部分无关紧要. (4认同)
  • @casperOne:他没有做出这样的假设.答案涵盖了两种情况(使用和不使用索引),声明如果没有索引,则需要进行全表扫描,因此性能可能相同. (3认同)