首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql join中使用索引

在mysql join中使用索引
EN

Stack Overflow用户
提问于 2017-10-31 01:01:28
回答 1查看 62关注 0票数 0

我有一个MySQL表T,列c1上有一个索引。我的连接查询如下所示。

代码语言:javascript
复制
select something from T as t1 inner join T as t2 on ABS(t1.c1-t2.c1)<2;

我使用explain来查看MySQL是否使用索引。上面的查询没有使用索引。但它确实为下面的查询使用了索引。

代码语言:javascript
复制
select something from T as t1 inner join T as t2 on t1.c1=t2.c1;

那么如何让MySQL在第一次查询时使用索引呢?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-31 01:08:47

您需要删除t2.c1列周围的函数调用,才能在该列上使用索引。

这样的查询应该适用于您:

代码语言:javascript
复制
SELECT something
FROM T AS t1
INNER JOIN T AS t2 ON t2.c1 > (t1.c1 - 2) and t2.c1 < (t1.c1 + 2);

注意:这里假设您在c1列上有一个索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47020587

复制
相关文章

相似问题

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