有个统计需求,大概是 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 PRO 为什么这么多人都喜欢或者说优先考虑奇形怪状的查询? |