فهرست مقاله
نحوه استفاده از دستور WHERE در MySQL ? سینتکس برای چندین شرط در دستور WHERE.
خروجی بند WHERE
ما می دانیم که از دستور SQL SELECT برای خواندن داده ها از جدول MySQL استفاده کنیم.
برای انتخاب مشروط داده ها از یک جدول، یک عبارت WHERE به دستور SELECT اضافه کنید.
دستور زبان
شکل زیر دستور کلی یک دستور SQL SELECT برای خواندن داده ها از جدول داده با استفاده از عبارت WHERE است:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
- با استفاده از کاما بین جداول می توانید از یک یا چند جدول در دستور query استفاده کنید, تقسیم کنید و از عبارت 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 را برمی گرداند. |
| <= | علامت مساوی یا کمتر، بررسی کنید که آیا مقدار سمت چپ کمتر یا مساوی مقدار سمت راست است، اگر مقدار سمت چپ کمتر یا مساوی با مقدار سمت راست است، مقدار واقعی را برگردانید | (A <= B) true را برمی گرداند. |
اگر بخواهیم داده های مشخص شده را از جدول داده MySQL بخوانیم، عبارت WHERE بسیار مفید است.
استفاده از کلید اصلی به عنوان پرس و جو شرطی در عبارت WHERE بسیار سریع است.
اگر معیارهای داده شده هیچ رکورد منطبقی در جدول نداشته باشند، پرس و جو هیچ داده ای را برمی گرداند.
خواندن داده ها از خط فرمان
ما از عبارت WHERE در دستور SQL SELECT برای خواندن داده های جدول داده MySQL chenweiliang_tbl استفاده می کنیم:
نمونه، مثال
مثال زیر تمام رکوردهای جدول chenweiliang_tbl را می خواند که در آن مقدار فیلد chenweiliang_author Sanjay است:
عبارت SQL SELECT WHERE
مقایسه رشته ها در عبارت WHERE MySQL به حروف بزرگ و کوچک حساس نیست.می توانید از کلمه کلیدی BINARY برای تعیین اینکه مقایسه رشته ها در عبارت WHERE به حروف کوچک و بزرگ حساس هستند استفاده کنید.
مثال زیر:
کلمه کلیدی باینری
mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com'; Empty set (0.01 sec) mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com'; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | JAVA 教程 | chenweiliang.com | 2016-05-06 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | +-----------+---------------+---------------+-----------------+ 2 rows in set (0.01 sec)
این مثال از کلمه کلیدی BINARY استفاده میکند که به حروف کوچک و بزرگ حساس است، بنابراین شرط کوئری chenweiliang_author='chenweiliang.com' هیچ دادهای را برنمیگرداند.
خواندن داده ها با استفاده از اسکریپت PHP
میتوانید از تابع PHP ()mysqli_query و همان دستور SQL SELECT با عبارت WHERE برای دریافت دادهها استفاده کنید.
این تابع برای اجرای دستورات SQL و سپس خروجی تمام داده های پرس و جو از طریق تابع PHP ()mysqli_fetch_array استفاده می شود.
نمونه، مثال
مثال زیر رکوردهایی از جدول chenweiliang_tbl را برمیگرداند که از مقدار chenweiliang_author در جدول chenweiliang_tbl به صورت chenweiliang.com استفاده میکنند :
تست بند MySQL WHERE:
<?
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");
// 读取 chenweiliang_author 为 chenweiliang.com 的数据
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
WHERE chenweiliang_author="chenweiliang.com"';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 MySQL WHERE 子句测试<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_free_result($retval);
mysqli_close($conn);
?>امیدوارم مقاله "چگونه از دستور WHERE در MySQL استفاده کنیم؟ سینتکس چندین شرط در دستور WHERE" که در وبلاگ چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.
لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-462.html
