2012-06-07 51 views
0

誰能幫助我爲什麼WHERE子句,如果沒有發揮作用?它有什麼替代解決方案?MySQL的WHERE隨着IF條件

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 
+1

它是如何工作的?錯誤? –

回答

1

也許是這樣的:

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

不錯的主意,謝謝你的工作 – Bryan

+0

沒問題..很高興幫助:P – Arion