有个统计需求,大概是 select count(if(条件 a)) as acount,count(if(条件 b)) as bcount,担心 if 里面的字段比较能不能走索引(MySQL 文档没说),如果不能,就考虑拆成两个 SQL 并用 where 取代原来的 if 条件。
1
w516322644 2020-07-15 12:55:39 +08:00
主要看 where 。
|
2
zhangysh1995 2020-07-15 13:02:12 +08:00
IF 函数的话,不论是否满足都要执行表达式,所以这里索引没什么用,所有数据都要扫一遍的吧
为啥不放到 where 里面用索引呢?看起来就是数一下行数。 |
3
cubecube 2020-07-15 16:52:21 +08:00
不会,这个在列表达式,和索引没任何关系
|
4
realpg 2020-07-16 07:50:00 +08:00 via Android
为什么这么多人都喜欢或者说优先考虑奇形怪状的查询?
|