Maison >base de données >tutoriel mysql >Comment utiliser l'instruction de cas MySQL ?
MySQL est un système de gestion de bases de données relationnelles développé par la société suédoise MySQL AB et est actuellement un produit d'Oracle.
Alors, comment utiliser l'instruction mysql case ?
Utilisation de l'instruction de cas mysql :
Structure : cas quand… puis …fin
1 Changez sa valeur en jugeant
par exemple :
select OperatorAccount, case when CreateTime>'2016-02-14 16:24:42' then 'after' when CreateTime<'2016-02-14 16:24:42' then 'before' else 'now' end stage from log_login order by CreateTime DESC.
La deuxième façon d'écrire
SELECT CallerNumber, CASE IsLocal WHEN 0 THEN '外线' WHEN 1 THEN '内线' END FROM cdr
2. Divisez une ligne en plusieurs colonnes
par exemple :
SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck
Partager ce résultat statistique (0 signifie aucun score, 1 signifie excellent, 2 signifie qualifié, 3 signifie non qualifié)
Le résultat final est le suivant :
Donc, à la fin, nous devons diviser la ligne en trois colonnes, l'instruction est la suivante
SELECT SipAccount, (CASE IsCheck WHEN 1 THEN number END) youxiu, (CASE IsCheck WHEN 2 THEN number END) hege, (CASE IsCheck WHEN 3 THEN number END) buhege FROM (SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck) AS a
Maintenant, le résultat est comme ceci Oui, vous constaterez que même s'il est divisé en trois colonnes, le résultat final n'est pas ce dont vous avez besoin. Ensuite, vous devez regrouper les résultats selon sipaccount et traiter les résultats en même temps. La déclaration est la suivante :
SELECT sipaccount, IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu, IF(MAX(hege) IS NULL,0, MAX(hege)) hege, IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege FROM (SELECT SipAccount, (CASE IsCheck WHEN 1 THEN number END) youxiu, (CASE IsCheck WHEN 2 THEN number END) hege, (CASE IsCheck WHEN 3 THEN number END) buhege FROM (SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck) AS a) AS b GROUP BY sipaccount
Enfin obtenu ce résultat. Exactement le format dont nous avons besoin.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!