מדריך מאמרים
כיצד לבצע שאילתת LIKE ב-MySQL ? מהם כללי השימוש של משפט LIKE במסדי נתונים של MySQL ?
סעיף LIKE של MySQL
אנחנו יודעים להשתמש בפקודה SQL SELECT כדי לקרוא נתונים ב-MySQL, ואנחנו יכולים להשתמש בסעיף WHERE במשפט SELECT כדי לקבל את הרשומות שצוינו.
משפט WHERE יכול להשתמש בסימן השוויון (=) כדי לקבוע את התנאים לאחזור נתונים, כגון "chenweiliang_author = 'chenweiliang.com'".
אבל לפעמים אנחנו צריכים לקבל את כל הרשומות ששדה chenweiliang_author שלהן מכיל תווי "COM", אז אנחנו צריכים להשתמש במשפט LIKE של SQL במשפט 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 המסתיימות ב- "COM" בשדה chenweiliang_author :
משפט עדכון SQL:
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
