Du misbruger case
udtryk. Der er to former. Formen du ønsker er:
(CASE WHEN userName IS NULL THEN 'was null'
WHEN userName IS NOT NULL THEN 'was not null'
END) AS caseExpressionTest
Bemærk:Der er ingen userName
efter CASE
.
Dette kontrollerer, at hver tilstand stopper ved den første.
MySQL fortolker booleaner som en gyldig værdi. Så din version er enten:
-- when userName is NULL
(CASE userName
WHEN 0 THEN 'was null'
WHEN 1 THEN 'was not null'
END AS caseExpressionTest
Dette vil returnere NULL
.
Eller:
-- when userName is not NULL
(CASE userName
WHEN 1 THEN 'was null'
WHEN 0 THEN 'was not null'
END AS caseExpressionTest
Formentlig userName
er en streng. Dette vil konvertere userName
til et heltal baseret på førende cifre. Hvis der ikke er førende cifre, får du 0
, hvorfor der er et match.