MySQL - sortowanie wyników
Widzieliśmy SQL SELECTpolecenie pobierania danych z tabeli MySQL. Gdy wybierzesz wiersze, serwer MySQL może zwrócić je w dowolnej kolejności, chyba że zalecisz mu inaczej, mówiąc, jak posortować wynik. Ale możesz posortować zestaw wyników, dodając plikORDER BY klauzula, która nazywa kolumnę lub kolumny, które chcesz posortować.
Składnia
Poniższy blok kodu to 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, jeśli to pole jest wyszczególnione.
Możesz sortować wynik według więcej niż jednego pola.
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 rozszerzeniem ORDER BY klauzula do pobierania danych z tabeli MySQL - tutorials_tbl.
Przykład
Wypróbuj poniższy przykład, który zwraca wynik w kolejności rosnącej.
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>
Sprawdź wszystkie nazwiska autorów, które są wymienione w kolejności rosnącej.
Używanie klauzuli ORDER BY wewnątrz skryptu PHP
Możesz użyć podobnej składni klauzuli ORDER BY w funkcji PHP - mysql_query(). Ta funkcja jest używana do wykonania polecenia SQL, a później innej funkcji PHPmysql_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 według autorów samouczka.
<?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);
?>