Maison > base de données > tutoriel mysql > Quelles sont les différentes manières de remplacer les valeurs nulles à l'aide d'une instruction SELECT dans MySQL ?

Quelles sont les différentes manières de remplacer les valeurs nulles à l'aide d'une instruction SELECT dans MySQL ?

王林
Libérer: 2023-09-07 11:13:10
avant
988 Les gens l'ont consulté

在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?

Il existe de nombreuses options pour remplacer les valeurs NULL à l'aide d'instructions select. Vous pouvez utiliser l'instruction CASE ou IFNULL() ou COALESCE()

Cas 1 - Utiliser IFNULL()

IFNULL( la syntaxe) est la suivante -

SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
Copier après la connexion

Cas 2 - Utiliser COALESCE()

COALESCE( ) La syntaxe de est la suivante -

SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
Copier après la connexion

Cas 3 - Utiliser l'instruction CASE

La syntaxe de l'instruction CASE.

SELECT CASE
WHEN yourColumnName IS NULL THEN ‘yourValue’
ELSE yourColumnName END AS anyVariableName FROM yourTableName
Copier après la connexion

Pour comprendre ce dont nous avons discuté ci-dessus, créons un tableau. La requête pour créer la table est la suivante -

mysql> create table ReplaceNULLDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(10),
   -> Marks int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.62 sec)
Copier après la connexion

Utilisez la commande insert pour insérer des enregistrements dans la table. La requête est la suivante -

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Larry',90);
Query OK, 1 row affected (0.16 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Carol',NULL);
Query OK, 1 row affected (0.17 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('David',NULL);
Query OK, 1 row affected (0.14 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Bob',67);
Query OK, 1 row affected (0.17 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Sam',78);
Query OK, 1 row affected (0.19 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Mike',NULL);
Query OK, 1 row affected (0.19 sec)

mysql> insert into ReplaceNULLDemo(Name,Marks) values('John',98);
Query OK, 1 row affected (0.16 sec)
Copier après la connexion

Utilisez l'instruction select pour afficher tous les enregistrements de la table. La requête est la suivante -

mysql> select *from ReplaceNULLDemo;
Copier après la connexion

Ce qui suit est le résultat -

+----+-------+-------+
| Id | Name  | Marks |
+----+-------+-------+
|  1 | Larry |    90 |
|  2 | Carol |  NULL |
|  3 | David |  NULL |
|  4 | Bob   |    67 |
|  5 | Sam   |    78 |
|  6 | Mike  |  NULL |
|  7 | John  |    98 |
+----+-------+-------+
7 rows in set (0.00 sec)
Copier après la connexion

Convertissons maintenant la valeur NULL en 0.

Cas 1 - Requête en utilisant IFNULL()

comme suit -

mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
Copier après la connexion

Ci-dessous se trouve la sortie montrant NULL remplacé par 0 -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
|                     90 |
|                      0 |
|                      0 |
|                     67 |
|                     78 |
|                      0 |
|                     98 |
+------------------------+
7 rows in set (0.00 sec)
Copier après la connexion

Cas 2 - Requête comme suit en utilisant COALESCE()

-

mysql> select coalesce(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
Copier après la connexion

Ci-dessous se trouve le résultat montrant NULL remplacé par 0 -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)
Copier après la connexion

Case 3 - en utilisant l'instruction CASE.

La requête est la suivante -

mysql> select case
   -> when Marks is null then 0
   -> else Marks end as ReplacementOfNULLWith0
   -> from ReplaceNULLDemo;
Copier après la connexion

Ce qui suit est la sortie montrant NULL remplacé par 0 -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90                     |
| 0                      |
| 0                      |
| 67                     |
| 78                     |
| 0                      |
| 98                     |
+------------------------+
7 rows in set (0.00 sec)
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal