mysql聯查中使用if和group by會讓你的結果不是你想要的


mysql中的if語句遇到統計count group by的時候會出現不准確的情況,原因是分組后if條件的結果以第一條為准,不會跟着分組

 

例如:

SELECT t1.*,t2.nick_name,t2.avatar,IF(t1.user_id=104080,1,0) AS is_owner,
IF(t4.user_id=104080,t4.vote_val,'N') AS is_voted, IF(t7.user_id=104080,1,0) AS is_collected FROM answer t1 JOIN user t2 ON t1.user_id = t2.id LEFT JOIN answer_vote t4 ON t4.item_id = t1.id LEFT JOIN answer_collection t7 ON t7.item_id = t1.id HAVING approved = 1 AND question_id = 100134 ORDER BY id desc LIMIT 10 OFFSET 0;

 

 

#加入group by
SELECT t1.*,t2.nick_name,t2.avatar,IF(t1.user_id=104080,1,0) AS is_owner,
IF(t4.user_id=104080,t4.vote_val,'N') AS is_voted, IF(t7.user_id=104080,1,0) AS is_collected FROM answer t1 JOIN user t2 ON t1.user_id = t2.id LEFT JOIN answer_vote t4 ON t4.item_id = t1.id LEFT JOIN answer_collection t7 ON t7.item_id = t1.id GROUP BY id HAVING approved = 1 AND question_id = 100134 ORDER BY id desc LIMIT 10 OFFSET 0;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM