Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Nilai Lalai dalam Pertanyaan IN untuk Data Julat Tarikh yang Hilang?

Bagaimana untuk Memasukkan Nilai Lalai dalam Pertanyaan IN untuk Data Julat Tarikh yang Hilang?

Patricia Arquette
Patricia Arquetteasal
2025-01-17 06:26:09512semak imbas

How to Include Default Values in an IN Query for Missing Date Range Data?

Dapatkan nilai lalai untuk nilai pertanyaan IN

Andaikan anda mempunyai pertanyaan yang menggunakan pertanyaan IN untuk mendapatkan semula data bagi pengguna yang berada dalam talian dalam julat tarikh tertentu. Walau bagaimanapun, anda ingin memasukkan nilai lalai dalam keadaan IN untuk ID pengguna yang tidak sepadan dengan syarat julat tarikh.

Soalan

Pertanyaan ringkas di bawah menggunakan gabungan kiri untuk memadankan penggunaan dalam talian dengan ID pengguna. Walau bagaimanapun, ia hanya mengembalikan rekod yang sepadan dengan kriteria julat tarikh.

<code class="language-sql">SELECT users.Name, users.ID, SUM(users.Minutes) AS MinutesOnline
FROM UserTable
LEFT JOIN OnlineUseage ON OnlineUseage.ID = UserTable.ID
WHERE OnlineUseage.Date >= '2016-01-01 00:00:00' AND OnlineUseage.Date < '2016-01-31 00:00:00';</code>

Penyelesaian

Untuk memasukkan nilai lalai, letakkan syarat julat tarikh dalam klausa FROM:

<code class="language-sql">SELECT
    users.Name,
    users.ID,
    IFNULL(SUM(users.Minutes), 0) AS MinutesOnline
FROM
    users
LEFT JOIN OnlineUseage ON
        OnlineUseage.ID = users.ID and
        OnlineUseage.Date >= '2016-01-01 00:00:00' AND
        OnlineUseage.Date < '2016-01-31 00:00:00';</code>

Ini memastikan bahawa semua ID pengguna disertakan dalam keadaan IN dapatkan semula, tidak kira sama ada ia sepadan dengan keadaan julat tarikh. IFNULL digunakan untuk memberikan nilai lalai 0 untuk pengguna tanpa data penggunaan dalam talian.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Nilai Lalai dalam Pertanyaan IN untuk Data Julat Tarikh yang Hilang?. 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