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

جملة WHERE لـ MySQL

نحن نعرف كيفية قراءة البيانات باستخدام جملة SELECT في MySQL.

للتحقق من البيانات من الجدول بشكل محدد، يمكنك إضافة جملة WHERE إلى جملة SELECT.

النحو

فيما يلي الجملة العامة لجملة SELECT في SQL باستخدام جملة WHERE لقراءة البيانات من جدول البيانات.

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • في جملة الاستعلام، يمكنك استخدام جدول واحد أو أكثر، يتم فصل الجداول باستخدام逗ات، ويتم تعيين شروط الاستعلام باستخدام جملة WHERE.

  • يمكنك تحديد أي شرط في جملة WHERE.

  • يمكنك استخدام AND أو OR لتعريف حالة واحدة أو أكثر.

  • يمكن تطبيق جملة WHERE أيضًا في أوامر DELETE أو UPDATE في SQL.

  • جملة WHERE تشبه شرط if في اللغة البرمجية، ويتم قراءة البيانات المحددة بناءً على قيم الحقول في جدول MySQL.

فيما يلي قائمة بالمشغلات التي يمكن استخدامها في جملة WHERE.

في الجدول أدناه، يتم افتراض أن A هو 10، B هو 20

المشغلاتالوصفمثال
=الشرط المتساوي، يتحقق مما إذا كانت القيمتين متساويتين، إذا كانت القيمتين متساويتين يعود إلى true(A = B) يعود إلى false.
, !=الشرط غير المتساوي، يتحقق مما إذا كانت القيمتين متساويتين، إذا كانت القيمتين غير متساويتين يعود إلى true(A != B) يعود إلى true.
>الشرط الكبير، يتحقق مما إذا كان القيمة اليمنى أكبر من القيمة اليسرى، إذا كانت القيمة اليمنى أكبر من القيمة اليسرى يعود إلى true(A > B) يعود إلى false.
<الشرط الصغير، يتحقق مما إذا كان القيمة اليمنى أقل من القيمة اليسرى، إذا كانت القيمة اليمنى أقل من القيمة اليسرى يعود إلى true(A < B) يعود إلى true.
>=علامت بیشتر یا برابر با، بررسی می‌کند که آیا مقدار چپ بیشتر یا برابر با مقدار راست است یا خیر، اگر مقدار چپ بیشتر یا برابر با مقدار راست باشد، true بازمی‌گرداند(A >= B) بازمی‌گرداند false.
<=علامت کمتر یا برابر با، بررسی می‌کند که آیا مقدار چپ کمتر یا برابر با مقدار راست است یا خیر، اگر مقدار چپ کمتر یا برابر با مقدار راست باشد، true بازمی‌گرداند(A <= B) بازمی‌گرداند true.

WHERE عبارت بسیار مفید است اگر بخواهیم داده‌های خاصی را از جدول MySQL بخوانیم.

استفاده از کلید اصلی برای شرایط جستجو در عبارت WHERE بسیار سریع است.

اگر هیچ رکوردی در جدول با شرایط داده شده تطابق ندارد، هیچ داده‌ای بازگردانده نمی‌شود.

خواندن داده‌ها از خط فرمان

ما از عبارت WHERE در عبارت SELECT SQL برای خواندن داده‌های جدول w3codebox_tbl در MySQL استفاده خواهیم کرد:

مثال

مثال زیر خواندن تمامی رکوردهایی که در فیلد w3codebox_author جدول w3codebox_tbl برابر با Sanjay است را نشان می‌دهد:

SELECT * from w3codebox_tbl WHERE w3codebox_author='بنیاد آموزشی';

نتیجه خروجی:

مقایسه رشته‌ای در عبارت WHERE در MySQL غیرحساس به حروف بزرگ و کوچک است. شما می‌توانید از کلمه المفتاح BINARY برای تنظیم مقایسه رشته‌ای در عبارت WHERE به صورت حساس به حروف بزرگ و کوچک استفاده کنید.

مثال زیر:

كلمة المفتاح BINARY

mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com';
مجموعة خالی (0.01 ثانیه)
 
mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com';
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|                          1 | PHP یادگیری                  | oldtoolbag.com                  | 2018-04-14                  |
|                          2 | MySQL یادگیری                  | oldtoolbag.com                  | 2018-04-14                  |
|                          3 | JAVA درس                  | oldtoolbag.com                  | 2018-04-14                  |
+----------+-------------+--------------+-----------------+
3 rows in set (0.00 sec)

示例中使用了 BINARY 关键字,是区分大小写的,所以 w3codebox_author='oldtoolbag.com' 的查询条件是没有数据的。

使用PHP脚本读取数据

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

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

在线示例

以下示例将从 w3codebox_tbl 表中返回使用 w3codebox_author 字段值为 oldtoolbag.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");
 
// 读取 w3codebox_author 为 oldtoolbag.com 的数据
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author="oldtoolbag.com"';
 
mysqli_select_db( $conn, 'w3codebox' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>اختبار جملة WHERE لـ MySQL في موقع أساسيات التعليمات<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_free_result($retval);
mysqli_close($conn);
?>

النتيجة الم输出的 كالتالي: