MySQLi - Сортировка результатов

Мы видели SQL SELECTкоманда для извлечения данных из таблицы MySQLi. Когда вы выбираете строки, сервер MySQLi может возвращать их в любом порядке, если вы не укажете иное, указав, как отсортировать результат. Но вы сортируете набор результатов, добавляя предложение 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 в командной строке

Это будет использовать команду SQL SELECT с предложением ORDER BY для извлечения данных из таблицы MySQLi tutorials_inf.

пример

Попробуйте следующий пример, который возвращает результат в порядке убывания.

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf ORDER BY id desc;
+----+-------+
| id | name  |
+----+-------+
|  4 | ram   |
|  3 | raghu |
|  2 | johar |
|  1 | sai   |
+----+-------+
4 rows in set (0.00 sec)

mysql>

Убедитесь, что все идентификаторы перечислены в порядке убывания.

Использование предложения ORDER BY внутри PHP-скрипта

Вы можете использовать аналогичный синтаксис предложения ORDER BY в функции PHP mysqli_query(). Эта функция используется для выполнения команды SQL, а затем другой функции PHP.mysqli_fetch_array() можно использовать для получения всех выбранных данных.

пример

Попробуйте следующий пример, который возвращает результат в порядке убывания автора учебника.

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully</br>';
   $sql = 'SELECT * from tutorials_inf ORDER BY id desc';
   
   if($result = mysqli_query($conn, $sql)){
      if(mysqli_num_rows($result) > 0){
         echo "<table>";
         echo "<tr>";
         echo "<th>id</th>";
         echo "<th>name</th>";
         echo "</tr>";
         
         while($row = mysqli_fetch_array($result)){
            echo "<tr>";
            echo "<td>" . $row['id'] . "</td>";
            echo "<td>" . $row['name'] . "</td>";
            echo "</tr>";
         }
         echo "</table>";
         mysqli_free_result($result);
      } else {
         echo "No records matching your query were found.";
      }
   } else {
      echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
   }
   mysqli_close($conn);
?>

Пример вывода должен быть таким -

Connected successfully
id	name
4	ram
3	raghu
2	johar
1	sai