English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sappiamo leggere i dati dalla tabella MySQL utilizzando l'istruzione SELECT di SQL.
Per selezionare i dati dal tavolo con condizioni, aggiungi la clausola WHERE all'istruzione SELECT.
Di seguito è riportata la sintassi comune dell'istruzione SELECT di SQL utilizzando la clausola WHERE per leggere i dati dal tavolo.
SELECT campo1, campo2,...campoN FROM nome_tabella1, nome_tabella2... [WHERE condizione1 [AND [OR]] condizione2.....
Nella query puoi utilizzare una o più tabelle, separate da virgola, e utilizzare la clausola WHERE per impostare le condizioni di ricerca.
Puoi specificare qualsiasi condizione nella clausola WHERE.
Puoi specificare una o più condizioni utilizzando AND o OR.
La clausola WHERE può anche essere applicata ai comandi DELETE o UPDATE di SQL.
La clausola WHERE è simile a una condizione if nei linguaggi di programmazione, legge i dati specifici in base ai valori dei campi della tabella MySQL.
Di seguito è elencata la lista degli operatori, che possono essere utilizzati nelle clausole WHERE.
Nella tabella sottostante, gli esempi suppongono che A sia 10 e B sia 20
Operatore | Descrizione | Esempio |
---|---|---|
= | Simbolo di uguaglianza, verifica se i due valori sono uguali, se sono uguali restituisce true | (A = B) restituisce false. |
, != | Diverso, verifica se i due valori sono uguali, se non sono uguali restituisce true | (A != B) restituisce true. |
> | Simbolo di maggiore, verifica se il valore di sinistra è maggiore del valore di destra, se il valore di sinistra è maggiore del valore di destra restituisce true | (A > B) restituisce false. |
< | Simbolo di minorità, verifica se il valore di sinistra è minore del valore di destra, se il valore di sinistra è minore del valore di destra restituisce true | (A < B) restituisce true. |
>= | Simbolo >= - Verifica se il valore sinistro è maggiore o uguale al valore destro, se il valore sinistro è maggiore o uguale al valore destro, ritorna true. | (A >= B) ritorna false. |
<= | Simbolo <= - Verifica se il valore sinistro è minore o uguale al valore destro, se il valore sinistro è minore o uguale al valore destro, ritorna true. | (A <= B) ritorna true. |
Se vogliamo leggere dati specifici dal tabella MySQL, la clausola WHERE è molto utile.
L'uso della chiave principale come condizione della clausola WHERE è molto veloce.
Se la condizione non trova nessun record corrispondente nel tabella, la query non ritornerà nessun dato.
Utilizzeremo la clausola WHERE nella espressione SQL SELECT per leggere i dati dalla tabella MySQL w3codebox_tbl.
Esempio
Esempio seguente leggerà tutti i record della tabella w3codebox_tbl con il valore del campo w3codebox_author uguale a Sanjay.
SELECT * from w3codebox_tbl WHERE w3codebox_author='基础教程网';
Risultato di uscita:
La confronta di stringa della clausola WHERE della MySQL non distingue le maiuscole e le minuscole. Puoi usare la chiave BINARY per impostare che la confronta de stringa della clausola WHERE sia distinta per le maiuscole e le minuscole.
Esempio seguente:
mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com'; Setto vuoto (0.01 sec) mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com'; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | submission_date | +----------+-------------+--------------+-----------------+ | 1 | 学习 PHP | oldtoolbag.com | 2018-04-14 | | 2 | 学习 MySQL | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 教程 | oldtoolbag.com | 2018-04-14 | +----------+-------------+--------------+-----------------+ 3 rows in set (0.00 sec)
示例中使用了 BINARY 关键字,是区分大小写的,所以 w3codebox_author='oldtoolbag.com' 的查询条件是没有数据的。
你可以使用 PHP 函数的 mysqli_query() 及相同的 SQL SELECT 带上 WHERE 子句的命令来获取数据。
该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。
以下示例将从 w3codebox_tbl 表中返回使用 w3codebox_author 字段值为 oldtoolbag.com 的记录:
<?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn , "set names utf8"); // 读取 w3codebox_author 为 oldtoolbag.com 的数据 $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl WHERE w3codebox_author="oldtoolbag.com"'; mysqli_select_db( $conn, 'w3codebox' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('无法读取数据: ' . mysqli_error($conn)); } echo'<h2>基础教程网MySQLWHERE子句测试<h2>'; echo'<table border="1"><tr><td>教程ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo"<tr><td> {$row['w3codebox_id']}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo'</table>'; //释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>
输出结果如下所示: