MySQL - Clause WHERE

Nous avons vu le SQL SELECTcommande pour récupérer les données d'une table MySQL. Nous pouvons utiliser une clause conditionnelle appeléeWHERE Clausepour filtrer les résultats. En utilisant cette clause WHERE, nous pouvons spécifier un critère de sélection pour sélectionner les enregistrements requis dans une table.

Syntaxe

Le bloc de code suivant a une syntaxe SQL générique de la commande SELECT avec la clause WHERE pour récupérer les données de la table MySQL -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Vous pouvez utiliser une ou plusieurs tables séparées par une virgule pour inclure diverses conditions à l'aide d'une clause WHERE, mais la clause WHERE est une partie facultative de la commande SELECT.

  • Vous pouvez spécifier n'importe quelle condition à l'aide de la clause WHERE.

  • Vous pouvez spécifier plus d'une condition à l'aide du AND ou la OR les opérateurs.

  • Une clause WHERE peut être utilisée avec la commande DELETE ou UPDATE SQL également pour spécifier une condition.

le WHERE la clause fonctionne comme une if conditiondans n'importe quel langage de programmation. Cette clause est utilisée pour comparer la valeur donnée avec la valeur de champ disponible dans une table MySQL. Si la valeur donnée de l'extérieur est égale à la valeur de champ disponible dans la table MySQL, alors il renvoie cette ligne.

Voici la liste des opérateurs, qui peuvent être utilisés avec le WHERE clause.

Supposons que le champ A contient 10 et le champ B 20, alors -

Opérateur La description Exemple
= Vérifie si les valeurs des deux opérandes sont égales ou non, si oui, la condition devient vraie. (A = B) n'est pas vrai.
! = Vérifie si les valeurs des deux opérandes sont égales ou non, si les valeurs ne sont pas égales, la condition devient vraie. (A! = B) est vrai.
> Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit, si oui, la condition devient vraie. (A> B) n'est pas vrai.
< Vérifie si la valeur de l'opérande de gauche est inférieure à la valeur de l'opérande de droite, si oui, la condition devient vraie. (A <B) est vrai.
> = Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit, si oui, la condition devient vraie. (A> = B) n'est pas vrai.
<= Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit, si oui, la condition devient vraie. (A <= B) est vrai.

La clause WHERE est très utile lorsque vous souhaitez extraire les lignes sélectionnées d'une table, en particulier lorsque vous utilisez la MySQL Join. Les jointures sont abordées dans un autre chapitre.

Il est courant de rechercher des enregistrements à l'aide du Primary Key pour accélérer la recherche.

Si la condition donnée ne correspond à aucun enregistrement de la table, la requête ne renverra aucune ligne.

Récupération de données à partir de l'invite de commande

Cela utilisera la commande SQL SELECT avec la clause WHERE pour récupérer les données sélectionnées de la table MySQL - tutorials_tbl.

Exemple

L'exemple suivant renvoie tous les enregistrements du tutorials_tbl table dont le nom de l'auteur est Sanjay.

[email protected]# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3      | JAVA Tutorial  |      Sanjay     |    2007-05-21   |      
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

À moins d'effectuer un LIKEcomparaison sur une chaîne, la comparaison n'est pas sensible à la casse. Vous pouvez rendre votre recherche sensible à la casse en utilisant leBINARY mot-clé comme suit -

[email protected]# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
   WHERE BINARY tutorial_author = 'sanjay';
Empty set (0.02 sec)

mysql>

Récupérer des données à l'aide d'un script PHP

Vous pouvez utiliser la même commande SQL SELECT avec la CLAUSE WHERE dans la fonction PHP mysql_query(). Cette fonction est utilisée pour exécuter la commande SQL et plus tard une autre fonction PHPmysql_fetch_array()peut être utilisé pour récupérer toutes les données sélectionnées. Cette fonction renvoie une ligne sous forme de tableau associatif, de tableau numérique ou les deux. Cette fonction renvoie FALSE s'il n'y a plus de lignes.

Exemple

L'exemple suivant renvoie tous les enregistrements du tutorials_tbl table dont le nom de l'auteur est Sanjay -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
      "Title: {$row['tutorial_title']} <br> ".
      "Author: {$row['tutorial_author']} <br> ".
      "Submission Date : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   } 

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>