Dernier tutorie...login
Dernier tutoriel manuel MySQL
auteur:php.cn  temps de mise à jour:2022-04-15 14:04:12

MySQL où clause enfant


Clause MySQL WHERE

Nous savons utiliser l'instruction SQL SELECT pour lire les données de la table MySQL.

Pour sélectionner conditionnellement des données dans une table, ajoutez une clause WHERE à l'instruction SELECT.

Syntaxe

Ce qui suit est la syntaxe générale de l'instruction SQL SELECT pour lire les données de la table de données à l'aide de la clause WHERE :

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2....
  • Vous pouvez utiliser une ou plusieurs tables dans l'instruction de requête. Utilisez des virgules (,) pour séparer les tables et utilisez l'instruction WHERE pour définir les conditions de requête.

  • Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.

  • Vous pouvez spécifier une ou plusieurs conditions en utilisant AND ou OR.

  • La clause WHERE peut également être appliquée aux commandes SQL DELETE ou UPDATE.

  • La clause WHERE est similaire à la condition if dans le langage de programmation, lisant les données spécifiées en fonction de la valeur du champ dans la table MySQL.

Ce qui suit est une liste d'opérateurs qui peuvent être utilisés dans la clause WHERE.

Les exemples du tableau ci-dessous supposent que A vaut 10 et B vaut 20

操作符描述实例
=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。
<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) 返回 true。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。
<=小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

Si nous voulons lire des données spécifiées dans la table de données MySQL, la clause WHERE est très utile.

Utiliser la clé primaire comme requête conditionnelle dans la clause WHERE est très rapide.

Si les critères donnés ne correspondent à aucun enregistrement dans la table, la requête ne renverra aucune donnée.


Lecture des données depuis l'invite de commande

Nous utiliserons la clause WHERE dans l'instruction SQL SELECT pour lire les données dans la table de données MySQL php_tbl :

Exemple

L'exemple suivant lira tous les enregistrements dont la valeur du champ user_author dans la table utilisateur est PHP :

mysql>

Image 9.jpg

La comparaison de chaînes de la clause WHERE de MySQL n'est pas sensible à la casse. Vous pouvez utiliser le mot-clé BINARY pour effectuer des comparaisons de chaînes dans la clause WHERE en respectant la casse.

L'exemple suivant

l'exemple
root@host# mysql -u root -p password;
Enter password:****
mysql> use demo;
Database changed
mysql> SELECT * from user \
          WHERE BINARY user_author='php';
Empty set (0.02 sec)
mysql>
utilise le mot-clé BINARY, qui est sensible à la casse, donc la condition de requête pour user_author='php' n'a aucune donnée de.

Utilisez un script PHP pour lire les données

Vous pouvez utiliser la fonction PHP mysql_query() et la même commande SQL SELECT avec une clause WHERE pour obtenir les données.

Cette fonction est utilisée pour exécuter des commandes SQL, puis afficher toutes les données interrogées via la fonction PHP mysql_fetch_array().

Exemple

L'exemple suivant renverra les enregistrements en utilisant la valeur du champ user_author en tant que PHP à partir de la table php_tbl :

<?php
header("Content-Type: text/html;charset=utf-8");

$dbhost = 'localhost';  // mysql服务器主机地址
$dbuser = 'root';            // mysql用户名
$dbpass = 'root';          // mysql用户名密码       
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
// 读取 user_author 为 user.COM 的数据
$sql = 'SELECT user_id, user_title, 
        user_author, submission_date
        FROM user
        WHERE user_author="PHP"';
 
mysqli_select_db( $conn, 'demo' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>PHP中文网 MySQL WHERE 子句测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
    echo "<tr><td> {$row['user_id']}</td> ".
         "<td>{$row['user_title']} </td> ".
         "<td>{$row['user_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>

Image 10.jpg

Tutoriel vidéo connexe recommandations :

  • Requête de données avancée - clause Where

  • Tutoriel MySQL