Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Nilai Lalai dalam Pertanyaan IN untuk Data Julat Tarikh yang Hilang?
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!