English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQLWHERE子句

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.

Sintassi

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

OperatoreDescrizioneEsempio
=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.

Lettura             dei             dati             dal             prompto             di             comando

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:

Chiave     BINARY

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脚本读取数据

你可以使用 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);
?>

输出结果如下所示: