<< Retour au sommaire

 

 

Opérateurs et filtres

 

 

 

Le sommaire :

  1. L’opérateur like.
  2. L’opérateur and.
  3. L’opérateur or.
  4. L’opérateur in.
  5. Le tri order by.
  6. Le filtre distinct.
  7. Le filtre limit.
  8. L’opérateur between.

 

L’opérateur like

 

Cet opérateur de comparaison d’égalité offre une plus grande souplesse que le signe « égal ».

En effet, like permet de réaliser une recherche approximative par l’intermédiaire du caractère générique « pourcent ».

 

Par exemple, pour afficher les contacts dont le nom de famille débute par la lettre « O » :

select * from contacts where Nom like "O%"

 

Ici, nous avons placé le caractère générique « Pourcent » après le « O », ainsi, dès lors que le nom de famille commence par un « O », la comparaison est vraie.

 

Le contraire maintenant, pour n’afficher que les contacts dont le nom de famille se termine par « O » :

select * from contacts where Nom like "%O"

 

Pour finir, affichons maintenant les nom de famille contenant au-moins un « O », et ce, quel que soit la position du « O » dans le nom :

select * from contacts where Nom like "%O%"

 

Et si votre chaîne de comparaison est dans une variable ?

select * from contacts where Nom like '%".addslashes($Chaîne)."%'

 

 

L’opérateur and

 

Cet opérateur permet de construire une expression contenant plusieurs comparaisons, toutes les comparaisons doivent être vraies pour que le traitement de la requête soit exécuté.

Par exemple, pour afficher les « Nathalie » qui habitent à « MARSEILLE » :

select * from contacts where Prenom="Nathalie" and Ville="MARSEILLE"

 

Les « Nathalie » habitant à « ROUBAIX » ne seront pas concernées !

Les « François » habitant à « MARSEILLE » ne le seront pas davantage…

 

 

L’opérateur or

 

Cet opérateur permet d’afficher les enregistrements si l’une des conditions reliées par un « or » est vraie, au moins une !

 

Si pour l’opérateur « and » il fallait que toutes les conditions soient vérifiées, avec le « or », si l’une des conditions est vraie, l’enregistrement est retenu…

 

Par exemple, pour afficher tous les contacts qui habitent à NANTES ou à LILLE :

select * from contacts where Ville="NANTES" or Villes="LILLE"

 

 

L’opérateur in

 

Cet opérateur est une seconde manière de réaliser un « or » !

Il est donc un « ou » logique, il faut que l’une des conditions soient vraie pour que l’enregistrement soit retenu.

 

Toujours le même exemple, pour afficher les contacts qui habitent à NANTES ou à LILLE :

select * from contacts where Ville in ("NANTES","LILLE")

 

 

Le tri order by

 

« order by » peut être ajouté à la fin de chaque requête, il permet de réaliser un tri croissant ou décroissant sur le résultat obtenu.

 

Par exemple, pour réaliser un tri croissant sur le nom :

select * from contacts order by Nom

 

L’opérateur “desc” peut être ajouté optionnellement afin de réaliser un tri décroissant.

Voici une requête qui réalise un tri décroissant sur le nom, puis un sous tri croissant sur le prénom :

select * from contacts order by Nom desc, Prenom

 

 

Le filtre distinct

 

Cet opérateur permet de supprimer les doublons dans le résultat de la requête.

Par exemple, si vous avez une table de contacts, il est fort possible qu’un certain nombre de contacts habitent dans les mêmes villes.

Si vous souhaitez afficher la liste des villes contenues dans la table « contacts » sans afficher plusieurs fois la même ville :

select distinct Ville from contacts

 

 

Le filtre limit

 

Cet opérateur vous permet de limiter le nombre d’enregistrements à récupérer par le nombre d’enregistrements fixé par « limit ».

 

Par exemple, pour n’obtenir que les 10 premiers enregistrements de la table « contacts » :

select * from contacts limit 10

 

 

L’opérateur between

 

« between » permet de réaliser une comparaison sur un intervalle de valeurs.

 

Par exemple, pour n’afficher que les salariés de la table « personnel » dont le salaire est compris entre 15 000 et 25000 :

select * from personnel where Salaire between 15000 and 25000 

 

Philippe BOULANGER