MySQL - Sonuçları Sıralama

SQL'i gördük SELECTMySQL tablosundan veri almak için komut. Satırları seçtiğinizde, MySQL sunucusu, sonucu nasıl sıralayacağınızı söyleyerek aksini belirtmediğiniz sürece bunları herhangi bir sırayla döndürmekte özgürdür. Ancak, bir sonuç kümesini birORDER BY sıralamak istediğiniz sütun veya sütunları adlandıran yan tümce.

Sözdizimi

Aşağıdaki kod bloğu, bir MySQL tablosundaki verileri sıralamak için ORDER BY yan tümcesi ile birlikte SELECT komutunun genel bir SQL sözdizimidir.

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Döndürülen sonucu, bu alan listeleniyorsa, herhangi bir alanda sıralayabilirsiniz.

  • Sonucu birden fazla alanda sıralayabilirsiniz.

  • Artan veya azalan sırada sonuç almak için ASC veya DESC anahtar kelimesini kullanabilirsiniz. Varsayılan olarak, artan düzendir.

  • Bir koşul koymak için WHERE ... LIKE yan tümcesini her zamanki gibi kullanabilirsiniz.

Komut İsteminde ORDER BY yan tümcesini kullanma

Bu, SQL SELECT komutunu kullanacaktır. ORDER BY MySQL tablosundan veri almak için yan tümce - tutorials_tbl.

Misal

Sonucu artan bir sırada döndüren aşağıdaki örneği deneyin.

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>

Artan sırada listelenen tüm yazar adlarını doğrulayın.

ORDER BY deyimini PHP Betiği içinde kullanma

PHP işlevinde ORDER BY yan tümcesine benzer bir sözdizimi kullanabilirsiniz - mysql_query(). Bu işlev, SQL komutunu ve daha sonra başka bir PHP işlevini çalıştırmak için kullanılır.mysql_fetch_array() seçilen tüm verileri almak için kullanılabilir.

Misal

Sonucu eğitim yazarlarının azalan sırasına göre döndüren aşağıdaki örneği deneyin.

<?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);
?>