Mengendalikan Nilai Null dalam Rekod Pangkalan Data
Apabila membuat pertanyaan pangkalan data, adalah perkara biasa untuk menghadapi situasi di mana rekod dengan kriteria tertentu mungkin tidak wujud. Secara lalai, kebanyakan pangkalan data mengembalikan ralat jika tiada rekod sepadan ditemui. Walau bagaimanapun, selalunya wajar untuk mengembalikan nilai nol.
Pertimbangkan contoh pertanyaan ini:
SELECT idnumber FROM dbo.database WHERE number = '9823474'
Jika nombor yang ditentukan tidak wujud dalam jadual, pertanyaan itu gagal. Sebaliknya, untuk mengembalikan null, kita boleh menggunakan sub-pertanyaan seperti berikut:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
Ini merangkum pertanyaan asal dalam sub-pertanyaan, membolehkan kami menganggap "tiada baris" sebagai nilai nol. Teknik ini telah diuji dan disahkan dalam pelbagai pangkalan data, termasuk PostgreSQL, SQLite, SQL Server, MySQL, Oracle, Firebird, DB2 dan SQLite.
Dalam Oracle, sintaks memerlukan pemilihan daripada jadual 1 baris tiruan DUAL:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber FROM DUAL;
Dalam MySQL dan Firebird, anda boleh menggunakan pendekatan yang serupa dengan memilih daripada RDB$DATABASE atau SYSIBM.SYSDUMMY1, masing-masing.
Penyelesaian ini menyediakan kaedah yang mudah dan konsisten untuk mengendalikan nilai nol dalam pertanyaan pangkalan data, memastikan kod anda boleh mengendalikan kedua-dua rekod yang sah dan tidak wujud dengan anggun.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan NULL Daripada Ralat Apabila Pertanyaan Pangkalan Data Tidak Menemui Rekod Padanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!