mysql按案例优化

bweufnob  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(365)

我在网上查了一下,但找不到解决这个问题的办法。我有个问题:

SELECT *
FROM profile
ORDER BY CASE WHEN country_geoname_id = 2635167 
              THEN 1 ELSE 0 END DESC, 
         score DESC

我想知道是否可以通过避免文件排序来优化这个查询。我为这些列创建了一个索引( country_geoname_id 以及 score ),但没用。
解释选择:

mutmk8jj

mutmk8jj1#

当你把你的订单条件放在一个函数中时,你就不能满足它。
什么使sql语句是可搜索的?
如果要使用索引,请创建一个附加的布尔字段 isMyCountry 并为其创建索引
然后你的问题变成:

SELECT *
FROM profile
ORDER BY isMyCountry, 
         score DESC

相关问题