Rumah > Artikel > pangkalan data > Bagaimana untuk Mengembalikan Nilai Lalai untuk Baris SQL Tidak Hadir Apabila Menggunakan Gabungan?
Cara Mengembalikan Nilai Lalai untuk Baris SQL Tidak Hadir
Andaikan anda mempunyai pertanyaan aktif yang mendapatkan maklumat daripada dua jadual yang digabungkan, tunjukkan dan jadual, berdasarkan kriteria tertentu. Jika tiada baris yang sepadan dalam pertanyaan anda, bagaimanakah anda memastikan bahawa nilai lalai dikembalikan dan bukannya hasil kosong?
Satu penyelesaian ialah menggunakan fungsi IFNULL() atau COALESCE() dalam pertanyaan anda. Fungsi ini mengambil dua hujah:
IFNULL(expression, default_value) COALESCE(expression, default_value)
ungkapan merujuk kepada nilai yang anda semak untuk kebatalan dan default_value ialah nilai yang anda mahu pulangkan jika ungkapan adalah nol.
Contoh :
<code class="sql">SELECT IFNULL(`file`, 'default.webm') AS `file` FROM `show`, `schedule`...</code>
Pertanyaan ini akan mengembalikan 'default.webm' jika tiada baris yang sepadan.
Walau bagaimanapun, dalam kes khusus anda, di mana anda hanya mengambil satu baris , anda boleh memanfaatkan fungsi agregat untuk memastikan nilai nol sekiranya tiada baris yang sepadan:
<code class="sql">SELECT IFNULL(MIN(`file`), 'default.webm') `file` FROM `show`, `schedule` WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP() AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file` ORDER BY `start_time` DESC LIMIT 1</code>
Penggunaan MIN() memastikan bahawa nilai nol dikembalikan jika tiada rekod dipilih. Selepas itu, IFNULL() kemudiannya akan menggantikan nilai nol dengan nilai lalai, memastikan pertanyaan anda sentiasa mengembalikan hasil yang tidak kosong.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Nilai Lalai untuk Baris SQL Tidak Hadir Apabila Menggunakan Gabungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!