Répertoire d'articles
Comment effectuer une requête LIKE dans MySQL ? Quelles sont les règles d'utilisation de l'instruction LIKE dans les bases de données MySQL ?
Clause MySQL LIKE
Nous savons utiliser la commande SQL SELECT pour lire des données dans MySQL, et nous pouvons utiliser la clause WHERE dans l'instruction SELECT pour obtenir les enregistrements spécifiés.
La clause WHERE peut utiliser le signe égal (=) pour définir les conditions de récupération des données, telles que « chenweiliang_author = 'chenweiliang.com' ».
Mais parfois, nous devons obtenir tous les enregistrements dont le champ chenweiliang_author contient des caractères "COM", puis nous devons utiliser la clause SQL LIKE dans la clause WHERE.
La clause SQL LIKE utilise le caractère de pourcentage % pour représenter n'importe quel caractère, similaire à l'astérisque * dans UNIX ou les expressions régulières.
Si le signe de pourcentage % n'est pas utilisé , la clause LIKE a le même effet que le signe égal = .
grammaire
Voici la syntaxe générale d'une instruction SQL SELECT pour lire les données d'une table de données à l'aide de la clause LIKE :
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.
- Vous pouvez utiliser la clause LIKE dans la clause WHERE.
- Vous pouvez utiliser la clause LIKE à la place du signe égal =.
- LIKE est généralement associé à % Utilisés ensemble, similaires à une recherche de métacaractères.
- Vous pouvez spécifier une ou plusieurs conditions en utilisant AND ou OR.
- Vous pouvez utiliser la clause WHERE...LIKE dans les commandes DELETE ou UPDATE pour spécifier des conditions.
Utilisation de la clause LIKE dans l'invite de commande
Ci-dessous, nous utiliserons la clause WHERE...LIKE dans la commande SQL SELECT pour lire les données de la table de données MySQL chenweiliang_tbl.
Exemple
Voici la liste de tous les enregistrements de la table chenweiliang_tbl dont le champ chenweiliang_author se termine par « COM » :
Instruction SQL UPDATE :
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)
Utilisation de la clause LIKE dans le script PHP
Vous pouvez utiliser la fonction PHP mysqli_query() et la même commande SQL SELECT avec une clause WHERE...LIKE pour obtenir des données.
Cette fonction est utilisée pour exécuter des commandes SQL, puis générer des données pour toutes les requêtes via la fonction PHP mysqli_fetch_assoc().
Mais s'il s'agit d'une instruction SQL utilisant la clause WHERE...LIKE dans DELETE ou UPDATE, il n'est pas nécessaire d'utiliser la fonction mysqli_fetch_array().
Exemple
Voici comment nous utilisons un script PHP pour lire tous les enregistrements se terminant par COM dans le champ chenweiliang_author de la table chenweiliang_tbl :
Test de la clause MySQL DELETE :
<?
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);
?>Nous espérons que l'article « Comment effectuer une requête LIKE dans MySQL ? Utilisation de l'instruction LIKE dans une base de données MySQL » publié sur le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) vous sera utile.
N'hésitez pas à partager le lien de cet article : https://www.chenweiliang.com/cwl-474.html
