Artikel Directory
Hoe voer ik een LIKE-query uit in MySQL ? Wat zijn de gebruiksregels voor de LIKE-instructie in MySQL-databases ?
MySQL LIKE-clausule
We weten dat we de SQL SELECT-opdracht moeten gebruiken om gegevens in MySQL te lezen, en we kunnen de WHERE-component in de SELECT-instructie gebruiken om de opgegeven records op te halen.
In de WHERE-clausule kan het gelijkheidsteken (=) worden gebruikt om de voorwaarden voor het ophalen van gegevens in te stellen, bijvoorbeeld "chenweiliang_author = 'chenweiliang.com'".
Maar soms moeten we alle records ophalen waarvan het veld chenweiliang_author "COM"-tekens bevat, en dan moeten we de SQL LIKE-component in de WHERE-component gebruiken.
De SQL LIKE-clausule gebruikt het procentteken % om elk willekeurig teken weer te geven, vergelijkbaar met het sterretje * in UNIX of reguliere expressies.
Als het procentteken % niet wordt gebruikt , heeft de LIKE-clausule hetzelfde effect als het gelijkheidsteken = .
Grammatica
Hieronder volgt de algemene syntaxis van een SQL SELECT-instructie om gegevens uit een gegevenstabel te lezen met behulp van de LIKE-clausule:
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- U kunt elke voorwaarde opgeven in de WHERE-component.
- U kunt de LIKE-component in de WHERE-component gebruiken.
- U kunt de LIKE-component gebruiken in plaats van het isgelijkteken =.
- LIKE wordt meestal geassocieerd met % Samen gebruikt, vergelijkbaar met zoeken naar metakarakters.
- U kunt één of meerdere voorwaarden specificeren met AND of OR.
- U kunt de WHERE...LIKE-component in DELETE- of UPDATE-opdrachten gebruiken om voorwaarden op te geven.
De LIKE-component in de opdrachtprompt gebruiken
Hieronder gebruiken we de WHERE...LIKE-component in de SQL SELECT-opdracht om gegevens uit de MySQL-gegevenstabel chenweiliang_tbl te lezen.
Voorbeeld
Hieronder volgt een lijst van alle records uit de tabel chenweiliang_tbl die eindigen op "COM" in het veld chenweiliang_author :
SQL UPDATE-instructie:
mysql> use chenweiliang; Database changed mysql> SELECT * from chenweiliang_tbl WHERE chenweiliang_author LIKE '%COM'; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | +-----------+---------------+---------------+-----------------+ 2 rows in set (0.01 sec)
LIKE-clausule gebruiken in PHP-script
U kunt de PHP-functie mysqli_query() en dezelfde SQL SELECT-opdracht gebruiken met een WHERE...LIKE-component om gegevens te verkrijgen.
Deze functie wordt gebruikt om SQL-opdrachten uit te voeren en vervolgens gegevens voor alle query's uit te voeren via de PHP-functie mysqli_fetch_assoc().
Maar als het een SQL-instructie is die gebruikmaakt van de WHERE...LIKE-component in DELETE of UPDATE, is het niet nodig om de functie mysqli_fetch_array() te gebruiken.
Voorbeeld
Zo gebruiken we een PHP-script om alle records die eindigen op COM in het veld chenweiliang_author in de tabel chenweiliang_tbl te lezen:
MySQL DELETE-clausuletest:
<?
php
$dbhost = 'localhost:3306'; // 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 chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
WHERE chenweiliang_author LIKE "%COM"';
mysqli_select_db( $conn, 'chenweiliang' );
$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, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Hopelijk is het artikel "Hoe voer je een LIKE-query uit in MySQL? Gebruik van de LIKE-instructie in een MySQL-database" dat op de blog van Chen Weiliang ( https://www.chenweiliang.com/ ) is gedeeld, nuttig voor je.
Deel gerust de link naar dit artikel: https://www.chenweiliang.com/cwl-474.html
