Mengembalikan NULL Apabila Tiada Rekod Ditemui
Apabila menggunakan SQL untuk mendapatkan semula data daripada pangkalan data, adalah perkara biasa untuk menghadapi situasi di mana rekod yang dikehendaki mungkin tidak wujud. Secara lalai, situasi sedemikian mengakibatkan ralat baris tidak ditemui. Walau bagaimanapun, terdapat cara untuk mengendalikan perkara ini dan sebaliknya mengembalikan nilai tertentu.
Pengenkapsulan Subkueri
Kaedah yang mudah tetapi berkesan untuk mengembalikan nilai nol apabila tiada rekod ditemui adalah untuk merangkum pertanyaan dalam subkueri. Teknik ini menukar ralat "row-not-found" kepada nilai nol.
Berikut ialah contoh:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
Pertimbangan Keserasian
Kaedah ini telah diuji dan disahkan untuk berfungsi dalam PostgreSQL, SQLite, SQL Server, MySQL dan Firebird. Walau bagaimanapun, sedikit variasi mungkin diperlukan untuk sistem pangkalan data lain.
Sebagai contoh, dalam Oracle, anda perlu membuat pertanyaan daripada jadual 1 baris tiruan yang dipanggil DUAL:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM DUAL;
DB2 memerlukan pendekatan serupa, menggunakan SYSIBM.SYSDUMMY1 sebagai jadual tiruan:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM SYSIBM.SYSDUMMY1;
Dengan merangkum pertanyaan dalam subkueri, anda boleh mengendalikan ketiadaan rekod dengan berkesan dan mengembalikan nilai nol dan bukannya menghadapi ralat baris-tidak-ditemui.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan NULL Daripada Ralat Baris Tidak Ditemui dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!