Select*fromStudent_Name;+---------+-------+---------+|FName |Mname|Lname |+- - -------+-------+---------+|Rahu"/> Select*fromStudent_Name;+---------+-------+---------+|FName |Mname|Lname |+- - -------+-------+---------+|Rahu">

Maison >base de données >tutoriel mysql >Comment pouvons-nous surmonter la propriété de la fonction CONCAT() qui renvoie NULL si l'un des arguments est NULL, en particulier lorsque nous voulons concaténer les valeurs dans les colonnes et que la valeur d'une colonne est NULL ?

Comment pouvons-nous surmonter la propriété de la fonction CONCAT() qui renvoie NULL si l'un des arguments est NULL, en particulier lorsque nous voulons concaténer les valeurs dans les colonnes et que la valeur d'une colonne est NULL ?

王林
王林avant
2023-09-07 10:49:021096parcourir

我们如何克服 CONCAT() 函数的属性,即如果任何一个参数为 NULL,它就会返回 NULL,特别是当我们想要连接列中的值并且任何列的值都为 NULL 时?

Les propriétés ci-dessus sont de peu d'utilité, surtout lorsque nous voulons concaténer des valeurs dans des colonnes et que la valeur de n'importe quelle colonne est NULL. Pour surmonter ce problème, nous pouvons utiliser la fonction IFNULL() et la fonction CONCAT(). Pour le comprendre, considérons l'exemple de la table "Student_name;" Qui a les données suivantes -

mysql> Select * from Student_Name;
+---------+-------+---------+
| FName   | Mname | Lname   |
+---------+-------+---------+
| Rahul   | NULL  | Singh   |
| Gaurav  | Kumar | NULL    |
| Harshit | NULL  | Khurana |
| Yash    | Pal   | Sharma  |
+---------+-------+---------+
4 rows in set (0.00 sec)

Maintenant, supposons que si nous voulons concaténer les valeurs des colonnes Fname, Mname et Lname, le résultat est le suivant -

mysql> Select CONCAT(Fname,Mname,Lname)AS Name from Student_Name;
+---------------+
| Name          |
+---------------+
| NULL          |
| NULL          |
| NULL          |
| YashPalSharma |
+---------------+
4 rows in set (0.00 sec)

Cependant, nous savons que ce n'est pas une sortie utile car les propriétés de la fonction CONCAT() sont, si un paramètre est NULL, il renvoie NULL. Nous pouvons surmonter cette propriété à l'aide de la fonction IFNULL() comme indiqué dans la requête suivante -

mysql> Select CONCAT(IFNULL(Fname,''),IFNULL(Mname,''),IFNULL(Lname,''))AS Name from Student_Name;
+----------------+
| Name           |
+----------------+
| RahulSingh     |
| GauravKumar    |
| HarshitKhurana |
| YashPalSharma  |
+----------------+
4 rows in set (0.06 sec)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer