Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengembalikan Nilai Lalai untuk Baris SQL Tidak Hadir Apabila Menggunakan Gabungan?

Bagaimana untuk Mengembalikan Nilai Lalai untuk Baris SQL Tidak Hadir Apabila Menggunakan Gabungan?

DDD
DDDasal
2024-11-01 12:23:30584semak imbas

How to Return a Default Value for Absent SQL Rows When Using Joins?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn