Maison >base de données >tutoriel mysql >Pourquoi la clause « BETWEEN » de MySQL exclut-elle la limite supérieure ?

Pourquoi la clause « BETWEEN » de MySQL exclut-elle la limite supérieure ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-03 12:48:39249parcourir

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

L'énigme « entre » de MySQL : pourquoi il exclut la valeur de fin

Lors de l'exécution d'une requête à l'aide de la clause « entre », les utilisateurs peuvent rencontrer une exclusion inattendue de la valeur finale. Ce comportement, comme l'illustre la requête :

select * from person where dob between '2011-01-01' and '2011-01-31'

qui renvoie les résultats du '2011-01-01' au '2011-01-30', en omettant les enregistrements avec '2011-01-31'.

Pour comprendre ce comportement, nous approfondissons la documentation MySQL, qui clarifie que :

"This is equivalent to the expression
(min <= expr AND expr <= max) "

Dans ce cas, le "min" est le "2011-01-01" et le "max" est le "2011-01-31". L'expression "(min <= expr AND expr <= max)" est évaluée à false pour les valeurs égales à "max", d'où l'exclusion du '2011-01-31' des résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn