Syntaxe MySQL BETWEEN
L'opérateur BETWEEN est utilisé dans les expressions WHERE pour sélectionner une plage de données entre deux valeurs. BETWEEN est utilisé avec AND, la syntaxe est la suivante :
WHERE column BETWEEN value1 AND value2 WHERE column NOT BETWEEN value1 AND value2
Habituellement, la valeur 1 doit être inférieure à la valeur 2. Lorsque BETWEEN est précédé de l'opérateur NOT, cela signifie l'opposé de BETWEEN, c'est-à-dire la sélection d'une valeur en dehors de cette plage.
ENTRE instance
Sélectionnez les données utilisateur avec un UID compris entre 2 et 5 :
SELECT * FROM user WHERE uid BETWEEN 2 AND 5
Renvoyer les résultats de la requête comme suit :
En plus des types numériques, BETWEEN prend également en charge les plages de chaînes. Ce qui suit sélectionne tous les utilisateurs dont le nom d'utilisateur est compris entre a et j (et inclut la lettre unique k/K) :
SELECT * FROM user WHERE username BETWEEN 'a' AND 'k'
Plages de caractères. prennent également en charge les caractères chinois, mais en général, ils n'ont aucun sens.
MySQL BETWEEN Boundary
Bien que presque toutes les bases de données prennent en charge l'opérateur BETWEEN ... AND, différentes bases de données gèrent BETWEEN ... AND différemment. Dans MySQL, BETWEEN contient les valeurs limites value1 et value2, comme l'exemple ci-dessus de sélection de données utilisateur avec un uid compris entre 2 et 5.
Certaines bases de données ne contiennent pas de valeurs limites value1 et value2 (similaires à > et <), et certaines bases de données contiennent value1 mais pas value2 (similaire à >= et <). Ainsi, lorsque vous utilisez BETWEEN ... AND, veuillez vérifier comment votre base de données gère BETWEEN les valeurs limites.
MySQL BETWEEN time and date
BETWEEN AND est souvent utilisé pour récupérer du contenu dans une plage d'heure ou de date. Voici quelques exemples courants BETWEEN d'heure et de date :
// int 时间戳格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据 SELECT * FROM table WHERE column_time BETWEEN 1218196800 AND 1230739199 // DATE 格式,查询 2008-08-08 到 2009-01-01 零点之前的数据 SELECT * FROM table WHERE column_time BETWEEN '2008-08-08' AND '2009-01-01' // DATETIME 格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据 SELECT * FROM table WHERE column_time BETWEEN '2008-08-08 20:00:00' AND '2008-12-31 23:59:59'
// DATETIME 格式,查询 2008-08-08 20:00:00 到当前时刻的数据 SELECT * FROM table WHERE column_time >= '2008-08-08 20:00:00'
expr BETWEEN min AND max
// 返回 0 SELECT 1 BETWEEN 2 AND 3 // 返回 1 SELECT 'b' BETWEEN 'a' AND 'c' // 判断日期范围 SELECT 20080808 BETWEEN 20080101 AND 20090101