MySQLi - Clause WHERE

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

Syntaxe

Voici la syntaxe SQL générique de la commande SELECT avec la clause WHERE pour récupérer les données de la table MySQLi -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Vous pouvez utiliser une ou plusieurs tables séparées par des virgules 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 plusieurs conditions en utilisant AND ou 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 WHEREclause fonctionne comme une condition if dans n'importe quel langage de programmation. Cette clause est utilisée pour comparer une valeur donnée avec la valeur de champ disponible dans la table MySQLi. Si la valeur donnée de l'extérieur est égale à la valeur de champ disponible dans la table MySQLi, alors il renvoie cette ligne.

Voici la liste des opérateurs, qui peuvent être utilisés avec 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 de deux opérandes sont égales ou non, si oui, la condition devient vraie. (A = B) n'est pas vrai.
! = Vérifie si les valeurs de 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 gauche est inférieure à la valeur de l'opérande droit, 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 récupérer des lignes sélectionnées dans une table, en particulier lorsque vous utilisez MySQLi Join. Les jointures sont abordées dans un autre chapitre.

Il est courant de rechercher des enregistrements en utilisant 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 des 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 MySQLi tutorials_inf.

Exemple

L'exemple suivant renverra tous les enregistrements de tutorials_inf table dont le nom est sai -

[email protected]# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql>SELECT * from tutorials_inf where name = 'sai';
+----+------+
| id | name |
+----+------+
|  1 | SAI  |
+----+------+
1 row in set (0.00 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 utilisantBINARY mot-clé comme suit -

[email protected]# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';
Empty set (0.02 sec)

mysql>

Récupération de données à l'aide d'un script PHP:

Vous pouvez utiliser la même commande SQL SELECT avec WHERE CLAUSE dans la fonction PHP mysqli_query().

Exemple

L'exemple suivant renverra tous les enregistrements de tutorials_inf table dont le nom est sai -

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $sql = 'SELECT * from tutorials_inf where name="sai"';
   $result = mysqli_query($conn, $sql);

   if (mysqli_num_rows($result) > 0) {
      while($row = mysqli_fetch_assoc($result)) {
         echo "Name: " . $row["name"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

L'exemple de sortie devrait être comme ceci -

Connected successfully
Name: SAI