MySQL multi-field betinget sortering? MySQL rækkefølge ved faldende stigende forespørgselssætning/funktion

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);
?>

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Rul til top