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
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)
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)
mysql> select *from ReplaceNULLDemo;
+----+-------+-------+ | 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)
Kes 1 - Pertanyaan menggunakan IFNULL()
seperti berikut -mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;
+------------------------+ | 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)
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!