English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
نحن نعرف أننا نستخدم أوامر 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 لتعريف الشروط
سنستخدم جملة 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函数的 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); ?>
النتيجة كما ترون في الشكل التالي: