首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于在mysql查询中使用或的问题

关于在mysql查询中使用或的问题
EN

Stack Overflow用户
提问于 2011-06-08 13:16:20
回答 3查看 305关注 0票数 0

我想得到一些澄清,如果在sql语句中对索引使用OR,它是使用索引还是否?

例如,如果我有这样的查询:

代码语言:javascript
复制
SELECT * FROM account_orders WHERE accountid = 1 OR accountid = 0

我有一个关于accountid字段的索引

mysql会使用索引吗?或者使用联合会更好?我一直在读到mysql没有在or语句中使用索引,或者我读错了。任何帮助/解释都会很有帮助。使用mysql 5.x

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-08 13:25:46

如果您像以前一样使用OR,Database 将不会使用索引。

解决办法是使用IN重新表述它。如下所示:

代码语言:javascript
复制
SELECT * FROM account_orders WHERE accountid IN (1, 0)

Databases 使用具有此语法的索引(如果可用

票数 1
EN

Stack Overflow用户

发布于 2011-06-08 13:19:21

最好在select语句前面加上EXPLAIN。这将报告查询的结果以及是否使用了任何索引。

代码语言:javascript
复制
EXPLAIN SELECT * FROM account_orders WHERE accountid = 1 OR accountid = 0
票数 0
EN

Stack Overflow用户

发布于 2011-06-08 13:24:35

这有点离题,但您可以这样做:

代码语言:javascript
复制
SELECT * FROM account_orders WHERE accountid IN (0,1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6274482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档