Учебники

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 обычным способом, чтобы поставить условие.

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

Вы можете отсортировать результаты по нескольким полям.

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

Вы можете использовать предложение WHERE … LIKE обычным способом, чтобы поставить условие.

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

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

пример

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

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 Script

Вы можете использовать похожий синтаксис предложения 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);
?>

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