مرتب سازی نتایج (Sorting Results) در MySQL — راهنمای جامع

۲۸۲ بازدید
آخرین به‌روزرسانی: ۲۱ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
مرتب سازی نتایج (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);
?>

اگر به این نوشته علاقه‌مند بودید، موارد زیر نیز احتمالاً مورد توجه شما قرار خواهند گرفت:

==

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
tutorialspoint
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *