Maison >base de données >tutoriel mysql >Comment puis-je utiliser la fonction IF() de MySQL pour ajuster conditionnellement les valeurs des colonnes dans une instruction SELECT ?
Ajustement conditionnel de la valeur de la colonne avec la fonction IF() de MySQL dans les instructions SELECT
L'instruction SELECT
de MySQL récupère les données. Parfois, vous devez modifier conditionnellement la sortie d’une colonne en fonction d’autres colonnes de la même ligne. La fonction IF()
facilite cela.
Scénario :
Disons que nous avons une table report
et que nous devons manipuler le signe de la colonne amount
en fonction de la colonne type
. Si type
est « P », amount
devrait être positif ; si 'N', cela devrait être négatif.
Requête initiale :
<code class="language-sql">SELECT id, amount FROM report;</code>
Modification conditionnelle :
Voici comment utiliser IF()
pour obtenir l'ajustement conditionnel souhaité :
<code class="language-sql">SELECT id, IF(type = 'P', amount, amount * -1) AS amount FROM report;</code>
Explication :
La fonction IF()
prend trois paramètres :
condition
: La condition à évaluer (type = 'P'
).true_value
: La valeur renvoyée si la condition est vraie (amount
).false_value
: La valeur renvoyée si la condition est fausse (amount * -1
).AS amount
attribue au résultat de la fonction IF()
l'alias amount
pour la sortie.
Gestion des valeurs NULL :
Si amount
pourrait être NULL
, utilisez IFNULL()
pour une manipulation robuste :
<code class="language-sql">SELECT id, IF(type = 'P', IFNULL(amount, 0), IFNULL(amount, 0) * -1) AS amount FROM report;</code>
IFNULL()
prend deux arguments :
value
: La valeur à vérifier NULL
(amount
).default_value
: La valeur à renvoyer si value
est NULL
(0).Lectures complémentaires :
Pour en savoir plus sur les fonctions de contrôle de flux MySQL, consultez la documentation officielle : https://www.php.cn/link/0cfe3c931a81acba365b335768dd0d93
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!