English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sappiamo che in MySQL possiamo utilizzare il comando SELECT SQL per leggere i dati. Possiamo anche utilizzare la clausola WHERE nell'istruzione SELECT per ottenere i record specifici.
La clausola WHERE può utilizzare l'uguale = per stabilire le condizioni di ricerca, come "w3codebox_author = 'oldtoolbag.com'".
A volte, possiamo voler ottenere tutti i record con il campo w3codebox_author che contiene il carattere "COM", in questo caso dobbiamo utilizzare la clausola LIKE dell'SQL nella clausola WHERE.
Nella clausola LIKE dell'SQL, il carattere di percentuale % rappresenta qualsiasi carattere, simile a una stella * nei caratteri jolly di UNIX o negli espressioni regolari.
Se non viene utilizzato il carattere di percentuale %, la clausola LIKE ha lo stesso effetto dell'uguale =.
Di seguito è riportata la sintassi comune dell'istruzione SQL SELECT che utilizza la clausola LIKE per leggere dati da un tabella.
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] field2 = 'somevalue'
Puoi specificare qualsiasi condizione nella clausola WHERE.
Puoi usare la clausola LIKE nella clausola WHERE.
Puoi usare la clausola LIKE al posto dell'uguale =.
LIKE viene solitamente usato con %, simile a una ricerca con caratteri jolly.
Puoi specificare una o più condizioni utilizzando AND o OR.
Puoi usare la clausola WHERE...LIKE nei comandi DELETE o UPDATE per specificare le condizioni.
Di seguito vediamo come utilizzare la clausola WHERE...LIKE nel comando SQL SELECT per leggere dati da un tabella MySQL chiamata w3codebox_tbl.
Di seguito sono riportati tutti i record con il campo w3codebox_author nella tabella w3codebox_tbl che termina con COM:
mysql> use w3codebox; Database changed mysql> SELECT * from w3codebox_tbl WHERE w3codebox_author LIKE '%COM'; +-----------+---------------+---------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | Impara Java | oldtoolbag.com | 2015-05-01 | | 4 | Impara Python | oldtoolbag.com | 2016-03-06 | +-----------+---------------+---------------+-----------------+ 2 righe nel set (0.01 sec)
Puoi utilizzare la funzione mysqli_query() e lo stesso comando SQL SELECT con WHERE...LIKE per ottenere i dati.
Questa funzione esegue l'ordine SQL e poi utilizza la funzione PHP mysqli_fetch_array() per visualizzare tutti i dati della query.
Ma se si utilizza WHERE...LIKE nel SQL per DELETE o UPDATE, non è necessario utilizzare la funzione mysqli_fetch_array().
Di seguito troviamo tutti i record con w3codebox_author che termina con COM nella tabella w3codebox_tbl utilizzando lo script PHP:
<?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"); $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl WHERE w3codebox_author LIKE "%%COM"'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>基础教程网 mysqli_fetch_array 测试<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_close($conn); ?>
结果输出如图所示: