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

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

王林
Lepaskan: 2023-09-07 11:13:10
ke hadapan
988 orang telah melayarinya

在 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;
Salin selepas log masuk

Case 2() - Gunakan COALESCESCE()

) Sintaksnya adalah seperti berikut -

SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
Salin selepas log masuk

Kes 3 - Gunakan pernyataan CASE

Sintaks pernyataan CASE.

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

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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

mysql> select *from ReplaceNULLDemo;
Salin selepas log masuk

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)
Salin selepas log masuk

Sekarang mari kita tukar nilai NULL kepada 0.

Kes 1 - Pertanyaan menggunakan IFNULL()

seperti berikut -

mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
Salin selepas log masuk

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)
Salin selepas log masuk

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;
Salin selepas log masuk

Kes 3 - menggunakan pernyataan CASE.

Pertanyaan adalah seperti berikut -

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

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;
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan