作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
希望有人能帮我解决这个问题,
我正在尝试将 MySQL 语句中的 WHERE 参数与 IF 操作连接起来,但我不知道如何处理它...
SELECT k.EventId AS Id
, ws.Name AS Name
, dauer AS Dauer
, kat.Name AS Kurztyp
, doz.Name AS Dozent
, DATE_FORMAT(k.Begin, '%Y-%m-%d') AS Begin
, COUNT(an.EventId) AS Teilnehmer
FROM kalender AS k
LEFT JOIN workshop AS ws
ON (k.WorkshopId = ws.Id)
LEFT JOIN angemeldet AS an
ON (k.EventId = an.EventId)
LEFT JOIN dozent AS doz
ON (k.Dozent = doz.Id)
LEFT JOIN ws_kategorie as kat
ON ((ws.Kategorie = kat.Id) or (ws.Kategorie2 = kat.Id))
INNER JOIN bezahlvariante AS bezvar
ON (an.bezahlvariante_idbezahlvariante = bezvar.idbezahlvariante)
WHERE kat.Name LIKE '%security%'
AND k.Begin > '2014-04-01'
AND k.aktiv = '1'
---------------->
AND bezvar.TN_Anzahl_phys = '1'
<---------------- 这应该是这样的:IF(COUNT(an.EventId)>0)
比 bezvar.TN_Anzahl_phys = '1'
ELSE bezvar.TN_Anzahl_phys IN (1,2)
GROUP BY k.EventId;
如何在 MySQL 中使用这样的 IF 操作?
最佳答案
你可以使用case-when
作为
GROUP BY k.EventId
having
case
when COUNT(an.EventId)>0 then bezvar.TN_Anzahl_phys = '1'
else
bezvar.TN_Anzahl_phys IN (1,2)
END
关于MySQL 查询 WHERE -> IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539085/
我是一名优秀的程序员,十分优秀!