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

DDD
Lepaskan: 2024-11-01 12:23:30
asal
583 orang telah melayarinya

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)
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!