"案例"在带有索引列

时间:2017-12-07 09:28:14

标签: mysql function key case where-clause

我在WHERE子句中有一个CASE WHEN条件的函数。简单(非常简单)它看起来像这样:

SELECT *
FROM mytable t
WHERE (
   CASE aPARAM WHEN 'a' THEN t.a = aID
               WHEN 'b' THEN t.b = aID
               WHEN 'c' THEN t.c = aID
               ELSE TRUE END
)

aPARAM aID - 功能参数

a b c - 表格的索引列" mytable"

但在这种情况下,MySQL根本不使用索引。

是的,此查询包含选择其他条件的条件,但它不取决于结果值,可以在查询执行之前计算(定义)。

可以使用什么建议这个函数来使用索引?

1 个答案:

答案 0 :(得分:1)

Case是MySQL无法使用索引的表达式。尝试将案例转换为一堆From Coq Require Import Reals. Open Scope R. Goal ~ (forall x y : R, (y + 1) / (y - 2) = x -> y <> 2). unfold "_ - _"; intros contra; specialize (contra ((2+1)/0) 2). rewrite Rplus_opp_r in contra. intuition. Qed. 条件,如下所示:

or