Rumah >pangkalan data >tutorial mysql >Mengapa Klausa `ANTARA` MySQL Mengecualikan Sekatan Atas?

Mengapa Klausa `ANTARA` MySQL Mengecualikan Sekatan Atas?

Susan Sarandon
Susan Sarandonasal
2025-01-03 12:48:39196semak imbas

Why Does MySQL's `BETWEEN` Clause Exclude the Upper Bound?

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!

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