我怎样才能在MySQL中制造相反的条件?

时间:2016-06-15 21:49:50

标签: php mysql sql

我有这个问题:

$db
->prepare("UPDATE users 
            SET reputation = reputation + 
                             CASE
                               WHEN id = ? THEN 2
                               WHEN id = ? AND ? THEN 15
                             END
            WHERE id IN (?, ?); ")
->execute(array($author_ques_id, $author_ans_id, $bool, $author_ans_id, $author_ques_id));

请关注这个条件:

WHEN id = ? AND ? THEN 15
//              ^ this is containing a boolean value

我想反对那个条件的价值。我的意思是我想在$boolfalse时运行该条件,并且在true时不运行。

我可以在通过php之前做到这一点:

$bool = !$bool;

但我想知道我可以在MySQL的查询中这样做吗?

2 个答案:

答案 0 :(得分:1)

使用NOT

... AND NOT ? THEN 15

答案 1 :(得分:1)

也许你的意思是 ...... AND ? IS FALSE
...... AND ? IS NOT TRUE

http://code.openark.org/blog/mysql/syntax-of-the-day-is-true-and-is-false