L’opérateur BETWEEN est utilisé dans une requête SQL pour sélectionner un intervalle de données dans une requête utilisant WHERE. L’intervalle peut être constitué de chaînes de caractères, de nombres ou de dates. L’exemple le plus concret consiste par exemple à récupérer uniquement les enregistrements entre 2 dates définies.
Syntaxe
L’utilisation de la commande BETWEEN s’effectue de la manière suivante :
SELECT * FROM table WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2'
La requête suivante retournera toutes les lignes dont la valeur de la colonne “nom_colonne” sera comprise entre valeur1 et valeur2.
Exemple : filtrer entre 2 dates
Imaginons une table “utilisateur” qui contient les membres d’une application en ligne.
id | nom | date_inscription |
---|---|---|
1 | Maurice | 2012-03-02 |
2 | Simon | 2012-03-05 |
3 | Chloé | 2012-04-14 |
4 | Marie | 2012-04-15 |
5 | Clémentine | 2012-04-26 |
Si l’ont souhaite obtenir les membres qui se sont inscrit entre le 1 avril 2012 et le 20 avril 2012 il est possible d’effectuer la requête suivante:
SELECT *
FROM utilisateur
WHERE date_inscription BETWEEN ‘2012-04-01’ AND ‘2012-04-20’
Résultat :
id | nom | date_inscription |
---|---|---|
3 | Chloé | 2012-04-14 |
4 | Marie | 2012-04-15 |
Exemple : filtrer entre 2 entiers
Si l’ont souhaite obtenir tous les résultats dont l’identifiant n’est pas situé entre 4 et 10, il faudra alors utiliser la requête suivante:
SELECT *
FROM utilisateur
WHERE id NOT BETWEEN 4 AND 10
Résultat :
id | nom | date_inscription |
---|---|---|
1 | Maurice | 2012-03-02 |
2 | Simon | 2012-03-05 |
3 | Chloé | 2012-04-14 |
Bon à savoir
Certaines vieilles versions de systèmes de gestion de bases de données ne prennent pas en compte la commande BETWEEN. Mais si vous utilisez une version récente de MySQL ou PostgreSQL, cela ne cause aucun problème.
L’autre élément important à savoir c’est que toutes les bases de données ne gèrent pas l’opérateur BETWEEN de la même manière. Certains systèmes vont inclurent les valeurs qui définissent l’intervalle tandis que d’autres systèmes considèrent ces valeurs sont exclues. Il est important de consulter la documentation officielle de la base de données que vous utilisez pour avoir une réponse exacte à ce sujet.