مرتب سازی نتایج (Sorting Results) در MySQL — راهنمای جامع
در راهنمای جامع SQL دیدیم که میتوان از دستور SELECT به منظور دریافت دادهها از جدول MySQL استفاده کرد. زمانی که ردیفها انتخاب میشوند سرور MySQL میتواند آنها را به هر ترتیبی که دوست دارد بازگرداند؛ اما با افزودن بند ORDER BY میتوان نتایج را برحسب هر ترتیبی که مورد نیاز است مرتب ساخت.
ساختار
نمونه کد زیر یک ساختار عمومی SQL برای دستور SELECT است که به همراه بند ORDER BY برای مرتبسازی دادههای بازگشتی از جدول MySQL مورد استفاده قرار میگیرد.
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- میتوانید نتایج بازگشتی را در هر فیلد در صورتی که آن فیلد فهرست شده باشد، مرتب کنید.
- میتوانید نتایج را در بیش از یک فیلد مرتب کنید.
- میتوانید از کلیدواژههای ASC یا DESC برای تعیین ترتیب صعودی یا نزولی استفاده کنید. به طور پیشفرض دادهها با ترتیب صعودی مرتب میشوند.
- میتوانید از بند WHERE…LIKE به روش معمول به همراه شرطهای مختلف استفاده کنید.
استفاده از بند ORDER BY در اعلان فرمان
در این روش از دستور SELECT در SQL به همراه بند ORDER BY برای دریافت دادهها از یک جدول MySQL استفاده میشود.
مثال
در نمونه کد زیر نتایج دستور SELECT با ترتیب صعودی بازگردانده میشوند:
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl ORDER BY tutorial_author ASC +-------------+----------------+-----------------+-----------------+ | tutorial_id | tutorial_title | tutorial_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 2 | Learn MySQL | Abdul S | 2007-05-24 | | 1 | Learn PHP | John Poul | 2007-05-24 | | 3 | JAVA Tutorial | Sanjay | 2007-05-06 | +-------------+----------------+-----------------+-----------------+ 3 rows in set (0.42 sec) mysql>
میبینید که همه نامهای مؤلفین با ترتیب صعودی ارائه شده است.
استفاده از بند ORDER BY درون یک اسکریپت PHP
شما میتوانید از همین ساختار بند ORDER BY درون یک تابع PHP به نام ()mysql_query استفاده کنید. این تابع برای اجرای دستور SQL استفاده میشود و سپس باید از تابع دیگر PHP به نام ()mysql_fetch_array برای دریافت همه دادهها استفاده کرد.
مثال
نمونه کد زیر نتایج نامهای مؤلفین را با ترتیب صعودی بازمیگرداند:
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl ORDER BY tutorial_author DESC'; mysql_select_db('TUTORIALS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Tutorial ID :{$row['tutorial_id']} <br> ". "Title: {$row['tutorial_title']} <br> ". "Author: {$row['tutorial_author']} <br> ". "Submission Date : {$row['submission_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>
اگر به این نوشته علاقهمند بودید، موارد زیر نیز احتمالاً مورد توجه شما قرار خواهند گرفت:
- انواع داده در MySQL — راهنمای جامع
- طراحی و برنامه نویسی وب
- کوئری INSERT در MySQL — راهنمای جامع
- مفاهیم مقدماتی MySQL — راهنمای جامع
- ایجاد و حذف جدول در پایگاه داده MySQL — به زبان ساده
- پایگاه داده و سیستم های مدیریت اطلاعات
- Trigger در SQL – از کاربرد تا نحوه استفاده به زبان ساده
==