فهرست مقاله
چگونه یک کوئری LIKE در MySQL اجرا کنیم ؟ قوانین استفاده از دستور LIKE در پایگاه داده MySQL چیست؟
عبارت MySQL LIKE
ما می دانیم که از دستور SQL SELECT برای خواندن داده ها در MySQL استفاده کنیم و می توانیم از عبارت WHERE در دستور SELECT برای دریافت رکوردهای مشخص شده استفاده کنیم.
عبارت WHERE میتواند از علامت مساوی (=) برای تعیین شرایط بازیابی دادهها استفاده کند، مانند "chenweiliang_author = 'chenweiliang.com'".
اما گاهی اوقات لازم است تمام رکوردهایی را که فیلد chenweiliang_author آنها حاوی کاراکترهای "COM" است را دریافت کنیم، سپس باید از عبارت SQL LIKE در عبارت WHERE استفاده کنیم.
عبارت SQL LIKE از علامت درصد % برای نمایش هر کاراکتری استفاده میکند، مشابه ستاره * در UNIX یا عبارات منظم.
اگر از علامت درصد % استفاده نشود ، عبارت LIKE همان اثر علامت مساوی = را دارد.
دستور زبان
شکل زیر دستور کلی یک دستور SQL SELECT برای خواندن داده ها از جدول داده با استفاده از عبارت LIKE است:
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- شما می توانید هر شرطی را در عبارت WHERE مشخص کنید.
- می توانید از عبارت LIKE در عبارت WHERE استفاده کنید.
- می توانید به جای علامت تساوی از عبارت LIKE استفاده کنید =.
- LIKE معمولاً با % با هم استفاده می شود، شبیه به جستجوی فرانویسه.
- با استفاده از AND یا OR می توانید یک یا چند شرط را مشخص کنید.
- می توانید از عبارت WHERE...LIKE در دستورات DELETE یا UPDATE برای تعیین شرایط استفاده کنید.
استفاده از عبارت LIKE در خط فرمان
در زیر از عبارت WHERE...LIKE در دستور SQL SELECT برای خواندن داده ها از جدول داده MySQL chenweiliang_tbl استفاده می کنیم.
نمونه، مثال
در زیر لیستی از تمام رکوردهای جدول chenweiliang_tbl که در فیلد chenweiliang_author به "COM" ختم میشوند، آمده است:
بیانیه 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)
استفاده از عبارت LIKE در اسکریپت PHP
می توانید از تابع PHP ()mysqli_query و همان دستور SQL SELECT با عبارت WHERE...LIKE برای دریافت داده استفاده کنید.
این تابع برای اجرای دستورات SQL و سپس خروجی داده ها برای تمام پرس و جوها از طریق تابع PHP ()mysqli_fetch_assoc استفاده می شود.
اما اگر یک دستور SQL با استفاده از عبارت WHERE...LIKE در DELETE یا UPDATE باشد، نیازی به استفاده از تابع ()mysqli_fetch_array نیست.
نمونه، مثال
در اینجا نحوه استفاده از اسکریپت PHP برای خواندن تمام رکوردهایی که به COM در فیلد chenweiliang_author در جدول chenweiliang_tbl ختم میشوند، آمده است:
تست بند 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);
?>امیدوارم مقاله "چگونه یک پرس و جوی LIKE را در MySQL انجام دهیم؟ کاربرد دستور LIKE در پایگاه داده MySQL" که در وبلاگ چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.
لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-474.html
