Rumah  >  Artikel  >  pangkalan data  >  Apakah cara berbeza untuk menggantikan nilai nol menggunakan pernyataan SELECT dalam MySQL?

Apakah cara berbeza untuk menggantikan nilai nol menggunakan pernyataan SELECT dalam MySQL?

王林
王林ke hadapan
2023-09-07 11:13:10923semak imbas

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

Terdapat banyak pilihan untuk menggantikan nilai NULL menggunakan penyataan pilih. Anda boleh menggunakan pernyataan CASE atau IFNULL() atau COALESCE()

Case 1 - Gunakan IFNULL()

IFNULL( syntax) adalah seperti berikut -

SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;

Case 2() - Gunakan COALESCESCE()

) Sintaksnya adalah seperti berikut -

SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;

Kes 3 - Gunakan pernyataan CASE

Sintaks pernyataan CASE.

SELECT CASE
WHEN yourColumnName IS NULL THEN ‘yourValue’
ELSE yourColumnName END AS anyVariableName FROM yourTableName

Untuk memahami perkara yang kita bincangkan di atas, mari kita buat jadual. Pertanyaan untuk mencipta jadual adalah seperti berikut -

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)

Gunakan arahan sisip untuk memasukkan beberapa rekod dalam jadual. Pertanyaannya adalah seperti berikut -

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)

Gunakan pernyataan pilih untuk memaparkan semua rekod dalam jadual. Pertanyaannya adalah seperti berikut -

mysql> select *from ReplaceNULLDemo;

Berikut ialah output -

+----+-------+-------+
| 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)

Sekarang mari kita tukar nilai NULL kepada 0.

Kes 1 - Pertanyaan menggunakan IFNULL()

seperti berikut -

mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;

Di bawah adalah output yang menunjukkan NULL digantikan dengan 0 -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
|                     90 |
|                      0 |
|                      0 |
|                     67 |
|                     78 |
|                      0 |
|                     98 |
+------------------------+
7 rows in set (0.00 sec)

Kes 2 menggunakan - Pertanyaan 2 menggunakan CO

- Query reee

Di bawah ialah output yang menunjukkan NULL digantikan dengan 0 -

mysql> select coalesce(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;

Kes 3 - menggunakan pernyataan CASE.

Pertanyaan adalah seperti berikut -

+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90 |
| 0 |
| 0 |
| 67 |
| 78 |
| 0 |
| 98 |
+------------------------+
7 rows in set (0.00 sec)

Berikut ialah output yang menunjukkan NULL digantikan dengan 0 -

mysql> select case
   -> when Marks is null then 0
   -> else Marks end as ReplacementOfNULLWith0
   -> from ReplaceNULLDemo;

Atas ialah kandungan terperinci Apakah cara berbeza untuk menggantikan nilai nol menggunakan pernyataan SELECT dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam