MySQLi - sortowanie wyników
Widzieliśmy SQL SELECTpolecenie pobierania danych z tabeli MySQLi. Gdy zaznaczysz wiersze, serwer MySQLi może zwrócić je w dowolnej kolejności, chyba że polecisz mu inaczej, mówiąc, jak posortować wynik. Ale sortujesz zestaw wyników, dodając klauzulę ORDER BY, która nazywa kolumnę lub kolumny, według których chcesz sortować.
Składnia
Oto ogólna składnia SQL polecenia SELECT wraz z klauzulą ORDER BY do sortowania danych z tabeli MySQL -
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
Możesz posortować zwrócony wynik według dowolnego pola, pod warunkiem, że pole to jest wyszczególnione.
Możesz sortować wynik na więcej niż jednym polu.
Możesz użyć słowa kluczowego ASC lub DESC, aby uzyskać wynik w porządku rosnącym lub malejącym. Domyślnie jest to kolejność rosnąca.
Aby umieścić warunek, możesz użyć klauzuli WHERE ... LIKE w zwykły sposób.
Korzystanie z klauzuli ORDER BY w wierszu polecenia
Spowoduje to użycie polecenia SQL SELECT z klauzulą ORDER BY w celu pobrania danych z tabeli MySQLi tutorials_inf.
Przykład
Wypróbuj poniższy przykład, który zwraca wynik w kolejności malejącej.
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>
Sprawdź, czy wszystkie identyfikatory są wymienione w porządku malejącym.
Używanie klauzuli ORDER BY w skrypcie PHP
Możesz użyć podobnej składni klauzuli ORDER BY w funkcji PHP mysqli_query(). Ta funkcja jest używana do wykonywania polecenia SQL, a później innej funkcji PHPmysqli_fetch_array() można użyć do pobrania wszystkich wybranych danych.
Przykład
Wypróbuj poniższy przykład, który zwraca wynik w kolejności malejącej autora samouczka.
<?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);
?>
Przykładowe wyjście powinno wyglądać następująco:
Connected successfully
id name
4 ram
3 raghu
2 johar
1 sai