Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengembalikan Nilai (NULL) Apabila Tiada Rekod Ditemui dalam Pertanyaan Pangkalan Data?
Kembalikan Nilai jika Tiada Rekod Ditemui
Menghadapi ralat "tiada baris" boleh mengecewakan apabila rekod tertentu tidak terdapat dalam jadual pangkalan data. Untuk menyelesaikan masalah ini, anda boleh mengubah suai pertanyaan untuk mengembalikan nilai nol dan bukannya ralat.
Penyelesaian
Pendekatan paling berkesan ialah merangkum pertanyaan awal dalam sub-pertanyaan. Dengan berbuat demikian, keadaan "tiada baris" diubah menjadi nilai nol. Penyelesaian ini telah berjaya diuji pada PostgreSQL, SQLite, SQL Server dan MySQL.
Kod Contoh
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id;
Pertanyaan ini akan mendapatkan semula nilai ID jika rekod wujud, atau kembalikan NULL jika ia tidak ditemui.
Tambahan Nota
Dalam Oracle, anda boleh memilih daripada jadual dummy 1 baris DUAL untuk mencapai hasil yang sama:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM DUAL;
Untuk DB2, gunakan sintaks ini:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM SYSIBM.SYSDUMMY1;
Pengguna Firebird boleh menggunakan penyelesaian ini:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM RDB$DATABASE;
Teknik ini menangani isu ini dengan berkesan mengembalikan nilai nol apabila tiada rekod ditemui, memastikan pertanyaan berjalan lancar walaupun tanpa data tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Nilai (NULL) Apabila Tiada Rekod Ditemui dalam Pertanyaan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!