Enigma "Antara" MySQL: Mengapa Ia Tidak Termasuk Nilai Pengakhiran
Apabila melaksanakan pertanyaan menggunakan klausa "antara", pengguna mungkin menghadapi pengecualian nilai akhir yang tidak dijangka. Tingkah laku ini, seperti yang digambarkan oleh pertanyaan:
select * from person where dob between '2011-01-01' and '2011-01-31'
yang mengembalikan hasil daripada '2011-01-01' kepada '2011-01-30', meninggalkan rekod dengan '2011-01-31'.
Untuk memahami tingkah laku ini, kami menyelidiki dokumentasi MySQL, yang menjelaskan bahawa:
"This is equivalent to the expression (min <= expr AND expr <= max) "
Dalam kes ini, "min" ialah '2011-01-01' dan "maks" ialah '2011-01-31'. Ungkapan "(min <= expr AND expr <= max)" dinilai kepada palsu untuk nilai yang sama dengan "maks", oleh itu pengecualian '2011-01-31' daripada keputusan.
Atas ialah kandungan terperinci Mengapa Klausa `ANTARA` MySQL Mengecualikan Sekatan Atas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!