我想得到一些澄清,如果在sql语句中对索引使用OR,它是使用索引还是否?
例如,如果我有这样的查询:
SELECT * FROM account_orders WHERE accountid = 1 OR accountid = 0我有一个关于accountid字段的索引
mysql会使用索引吗?或者使用联合会更好?我一直在读到mysql没有在or语句中使用索引,或者我读错了。任何帮助/解释都会很有帮助。使用mysql 5.x
发布于 2011-06-08 13:25:46
如果您像以前一样使用OR,Database 将不会使用索引。
解决办法是使用IN重新表述它。如下所示:
SELECT * FROM account_orders WHERE accountid IN (1, 0)Databases 将使用具有此语法的索引(如果可用
发布于 2011-06-08 13:19:21
最好在select语句前面加上EXPLAIN。这将报告查询的结果以及是否使用了任何索引。
EXPLAIN SELECT * FROM account_orders WHERE accountid = 1 OR accountid = 0发布于 2011-06-08 13:24:35
这有点离题,但您可以这样做:
SELECT * FROM account_orders WHERE accountid IN (0,1)https://stackoverflow.com/questions/6274482
复制相似问题