Artikel Directory
MySQL sortering med flere felter? MySQL ORDER BY forespørgsel/funktion i stigende/faldende rækkefølge
MySQL sortering
Vi ved at bruge SQL SELECT-sætning til at læse data fra MySQL-tabellen.
Hvis vi har brug for at sortere de læste data, kan vi bruge MySQLs ORDER BY- klausul til at angive, hvilket felt og sorteringsmetode vi vil bruge, og derefter returnere søgeresultaterne.
grammatik
Følgende er en SQL SELECT-sætning, der bruger ORDER BY-sætningen til at sortere forespørgselsdataene, før de returnerer dataene:
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- Du kan bruge et hvilket som helst felt som sorteringsbetingelse for at returnere sorterede forespørgselsresultater.
- Du kan indstille flere felter til at sortere.
- Du kan bruge nøgleordene ASC eller DESC til at indstille forespørgselsresultaterne til at blive sorteret i stigende eller faldende rækkefølge.Som standard er den i stigende rækkefølge.
- Du kan tilføje WHERE...LIKE-sætninger for at sætte betingelser.
Brug af ORDER BY-sætningen i kommandoprompten
Følgende vil bruge ORDER BY-sætningen i SQL SELECT-sætningen til at læse dataene i MySQL-datatabellen chenweiliang_tbl:
Instans
Prøv eksemplerne nedenfor, og resultaterne vil blive sorteret i stigende og faldende rækkefølge.
SQL sortering
mysql> use chenweiliang; Database changed mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date ASC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec) mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date DESC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec)
Læs alle data i chenweiliang_tbl-tabellen og sorter i stigende rækkefølge efter feltet submission_date.
Brug af ORDER BY-klausulen i et PHP-script
Du kan bruge PHP-funktionen mysqli_query() og den samme SQL SELECT-kommando med en ORDER BY-klausul for at hente dataene.
Denne funktion bruges til at udføre SQL-kommandoer og derefter udlæse alle de forespurgte data gennem PHP-funktionen mysqli_fetch_array().
Instans
Prøv følgende eksempel, de forespurgte data returneres i faldende rækkefølge af feltet submission_date.
MySQL ORDER BY test:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
ORDER BY submission_date ASC';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 MySQL ORDER BY 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Forhåbentlig vil artiklen "MySQL Multi-Field Condition Sorting? MySQL ORDER BY Descending/Ascending Order Query Statement/Function", som er delt på Chen Weiliangs blog ( https://www.chenweiliang.com/ ), være nyttig for dig.
Del gerne dette artikellink: https://www.chenweiliang.com/cwl-476.html
