具有IF条件的MySQL WHERE

时间:2012-06-07 17:17:50

标签: mysql where conditional-statements

任何人都可以帮助我解决为什么WHERE子句如果不起作用?它的替代解决方案是什么?

SELECT jq.jobid
  FROM jobqueue jq
  LEFT JOIN taskslogs tl
    ON jq.taskqueueid=tl.taskqueueid
  LEFT JOIN (SELECT p1.taskID,p1.processingType
               FROM projecttask p
               LEFT JOIN projecttask p1
                 ON p.sequenceNo=p1.nextTaskSequence
                AND p.projectID=p1.projectID
              WHERE p.taskID=paramTaskID) prevTask
    ON tl.taskID=prevTask.taskID
 WHERE IF(prevTask.processingType='BATCH',jq.batchid!=0,IF(prevTask.processingType='DOCGROUP',jq.documentgroupid!=0,TRUE))
 GROUP BY jq.jobid

2 个答案:

答案 0 :(得分:1)

也许是这样的:

WHERE 
    (prevTask.processingType='BATCH' AND jq.batchid!=0)
    OR (prevTask.processingType='DOCGROUP' AND jq.documentgroupid!=0)

答案 1 :(得分:0)

我认为你不能在查询中使用IF语句。对于程序来说更是如此。

您应该查看使用案例陈述。

http://dev.mysql.com/doc/refman/5.0/en/case-statement.html