כיצד לבצע שאילתות MySQL like? השימוש בהצהרת like במסד הנתונים של MySQL

כיצד לבצע שאילתת 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);
?>

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

גלול למעלה