只有在mysql查询中if为true时才使用AND语句

时间:2013-02-20 10:59:33

标签: php mysql database if-statement

我更新了旧系统,但我遇到了查询问题。

要开展业务,这是直接的问题:

有新记录与其他记录的ID相关联。还有一些旧的记录。

  • 案例1:有一个INT ID,当存在时,查询必须在包含后使用AND。
  • 案例2:当INT id的值为0时,它必须什么都不做

这是我需要创建变量AND语句的查询部分:

LEFT JOIN table v ON v.producten_id = i.producten_id AND v.t5_id = i.t5_id AND i.id = v.inkoop_id

我从未在查询中使用过IF雄蕊,但我正在寻找类似的东西:

LEFT JOIN table v ON v.producten_id = i.producten_id AND v.t5_id = i.t5_id if(v.inkoop_id > 0){AND i.id = v.inkoop_id}

2 个答案:

答案 0 :(得分:1)

试试这个:

LEFT JOIN table v
  ON v.producten_id = i.producten_id
    AND v.t5_id = i.t5_id
    AND (v.inkoop_id <= 0 OR i.id = v.inkoop_id)

答案 1 :(得分:1)

这个怎么样....

LEFT JOIN table v ON v.producten_id = i.producten_id
   AND v.t5_id = i.t5_id
   AND ((v.inkoop_id > 0 AND i.id = v.inkoop_id) OR (v.inkoop_id = 0))