Article mis à jour le : 05-05-2022
Voici quelques exemples et explications quant à comment filtrer les résultats de ses requêtes avec MySQLDans la lignée des rappels et conseils pour l'utilisation d'un SGBD et particulièrement de MySQL, voici maintenant un article sur les filtres de requêtes.
Une chose importante : il est important de faire des tests et de jouer sur la granularité des requêtes dans la mesure où la rapidité ne sera pas la même selon la construction de cette dernière.
Par exemple une grosse requête peut être mieux que 10.000 petites requêtes, mais 4 ou 5 requêtes moyennes peuvent être mieux qu'une seule grosse requête. Pensez donc à essayer d'optimiser vos requêtes!
Opérateur | Signification |
= | égal |
< | inférieur |
<= | inférieur ou égal |
> | supérieur |
>= | supérieur ou égal |
<> ou != | différent |
<=> | égal (valable aussi pour NULL) |
Opérateur | Signification |
AND | ET |
OR | OU |
XOR | OU EXCLUSIF |
NOT | NON |
Rappels :
Pour filtrer des résultats avec un champ NULL (donc pas de valeur) vous pouvez utiliser ceci :
Permet de classer les résultats dans un certain ordre, par exemple alphabétique ou numérique. Il suffit de préciser la colonne de filtre.
Notez que l'on peut filtrer sur plusieurs colonnes, mais le tri se fera d'abord sur la première colonne spécifiée, puis sur la seconde...
ORDER BY peut être compléter par les mots-clés ASC ou DESC (tri ascendant ou descendant).
Avec un SELECT, il permet de filtrer les doublons, ne retournant que des colonnes uniques. A noter que l'on peut compléter le DISTINCT par un nom de colonne afin de ne retourner, par exemple que le noms des membres du personnels sans doublon :
SELECT DISTINCT nom FROM personnel
Permet de limiter la quantité de résultats retournés. Par exemple, je veux toutes les voitures dont la couleur n'est pas spécifiée, mais que 10 résultats.
SELECT * FROM voitures WHERE couleur IS NULL LIMIT 10
Il peut être complété par le mot-clef OFFSET, qui sert à préciser à partir de quelle ligne ont lit les résultats, utile par exemple dans le cas de la pagination d'une liste de résultats (exemple, afficher la page 2 des résultats d'une recherche).
Vous pouvez utiliser les opérateurs 'LIKE' ou '=', avec ou sans sensibilité à la casse.
Rechercher des enregistrements qui contiennent "Toto", sans sensibilité :
... WHERE nom LIKE '%Toto%'
Avec sensibilité :
... WHERE nom LIKE BINARY '%Toto%'
La différence entre 'LIKE' et '=' se situe au niveau de la possibilité de chercher l'occurence juste dans un morceau (voir plus bas), c'est le cas de 'LIKE", alors que '=' lui cherche exactement la même occurence.