WHERE中的IF clausole匹配单个值或任何

时间:2014-01-14 12:33:04

标签: mysql

我正在尝试在WHERE中向mysql添加一个clausole,如果条件得到尊重,我需要匹配一个值,否则允许任何值(可能性0或1),但我我不知道以“说话”的方式实现这个目标:

WEHRE a.enabled=(CASE WHEN (a.operator_id=".$_SESSION['id'].") THEN 1 ELSE 0,1 END)

2 个答案:

答案 0 :(得分:1)

你缺少WHEN

WHERE a.enabled=(CASE WHEN (a.operator_id=".$_SESSION['id'].") THEN 1 
                      ELSE a.enabled 
                 END
                )

答案 1 :(得分:0)

WHERE a.enabled=
CASE 
WHEN a.operator_id=".$_SESSION['id']." THEN ".$_SESSION['id']." -- when condition is met, match enabled to session id
ELSE a.enabled -- else proceed anyway
END