我尝试从图像表中检索有效的团队图像。应该只有一个团队图像得到验证。当收到的第一个图像也被验证时,下面的case语句很有效,但是如果第一个图像无效并且第二个接收到的是有效的...我得到一个NULL字符串
CASE
WHEN taskcode = 0 AND validated = 1
THEN imgRenamed
ELSE NULL
END AS teamImg
以另一种方式总结。
我还应该注意,这两个图像的任务代码都是0,只是一个被标记为无效而第二个被标记为有效。
这是否有足够的信息可以帮助我了解案例#3中出了什么问题?
感谢
答案 0 :(得分:1)
您需要将其包含在聚合中,例如:
select max(CASE WHEN taskcode = 0 AND validated = 1
THEN imgRenamed
ELSE NULL
END) AS teamImg
from . . .
group by teamId
如果没有聚合,MySQL通常会从条件的一行中选择任意值。换句话说,条件不会应用于所有行,只适用于其中一行。