我在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根本不使用索引。
是的,此查询包含选择其他条件的条件,但它不取决于结果值,可以在查询执行之前计算(定义)。
可以使用什么建议这个函数来使用索引?
答案 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