English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

جملة LIKE في MySQL

نحن نعرف أننا نستخدم أوامر SQL SELECT لقراءة البيانات في MySQL نحن يمكن أن نستخدم جملة WHERE في جملة SELECT للحصول على السجلات المحددة.

يمكنك استخدام = في جملة WHERE لتعريف شرط الحصول على البيانات، مثل "w3codebox_author = 'oldtoolbag.com'".

لكن بعض الأحيان نحتاج إلى الحصول على جميع السجلات التي تحتوي على حرف "COM" في حقل w3codebox_author، في هذه الحالة نحتاج إلى استخدام جملة LIKE SQL في جملة WHERE

يستخدم رمز % في جملة LIKE SQL لتمثيل أي حرف، يشبه نجمة * في UNIX أو التعبيرات النمطية

إذا لم تكن تستخدم علامة %، تكون جملة LIKE مشابهة لأثر =

النحو

هذه هي النسخة العامة من جملة SELECT في SQL باستخدام جملة 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 في سطر الأوامر

سنستخدم جملة SELECT في SQL باستخدام شرط WHERE...LIKE لقراءة البيانات من جدول w3codebox_tbl في MySQL.

在线示例

ما سنقوم بجمعه فيما يلي هي جميع السجلات التي تنتهي بـ COM في حقل w3codebox_author في جدول w3codebox_tbl:

mysql> use w3codebox;
Database changed
mysql> SELECT * from w3codebox_tbl  WHERE w3codebox_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| w3codebox_id | w3codebox_title  | w3codebox_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3         | تعلم Java   | oldtoolbag.com    | 2015-05-01      |
| 4         | 学习 Python    | oldtoolbag.com         | 2016-03-06         |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)

在PHP脚本中使用 LIKE 子句

你可以使用PHP函数的 mysqli_query() 及相同的 SQL SELECT 带上 WHERE...LIKE 子句的命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。

但是如果是 DELETE 或者 UPDATE 中使用 WHERE...LIKE 子句的 SQL 语句,则无需使用 mysqli_fetch_array() 函数。

在线示例

以下是我们使用PHP脚本在 w3codebox_tbl 表中读取 w3codebox_author 字段中以 COM 为结尾的的所有记录:

<?php
$dbhost = 'localhost'; // 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 w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author LIKE "%COM"';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
    die('فشل في قراءة البيانات: ' . mysqli_error($conn));
}
echo '<h2>موقع تعليميات الأساس net mysqli_fetch_array اختبار<h2>';
echo '<table border="1"><tr><td>معرف التعليمية</td><td>العنوان</td><td>المؤلف</td><td>تاريخ الإرسال</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
    echo "<tr><td> {$row['w3codebox_id']}</td> ".
         "<td>{$row['w3codebox_title']} </td> ".
         "<td>{$row['w3codebox_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

النتيجة كما ترون في الشكل التالي: