Bedingte Sortierung mit mehreren Feldern in MySQL MySQL-Reihenfolge nach absteigender aufsteigender Abfrageanweisung/-funktion

MySQLBedingte Sortierung nach mehreren Feldern?MySQL Reihenfolge nach absteigender und aufsteigender Abfrageanweisung/-funktion

MySQL-Sortierung

Wir wissen, dass die SQL SELECT-Anweisung verwendet wird, um Daten aus der MySQL-Tabelle zu lesen.

Wenn wir die gelesenen Daten sortieren müssen, können wir MySQL verwenden SORTIEREN NACH -Klausel, um festzulegen, welches Feld Sie auf welche Weise sortieren möchten, und geben Sie dann die Suchergebnisse zurück.

Grammatik

Das Folgende ist eine SQL SELECT-Anweisung, die die ORDER BY-Klausel verwendet, um die Abfragedaten zu sortieren, bevor die Daten zurückgegeben werden:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Sie können jedes Feld als Sortierbedingung verwenden, um sortierte Abfrageergebnisse zurückzugeben.
  • Sie können mehrere Felder zum Sortieren festlegen.
  • Sie können die Schlüsselwörter ASC oder DESC verwenden, um festzulegen, dass die Abfrageergebnisse in aufsteigender oder absteigender Reihenfolge sortiert werden.Standardmäßig ist es in aufsteigender Reihenfolge.
  • Sie können WHERE...LIKE-Klauseln hinzufügen, um Bedingungen festzulegen.

Verwenden der ORDER BY-Klausel in der Eingabeaufforderung

Im Folgenden wird die ORDER BY-Klausel in der SQL SELECT-Anweisung verwendet, um die Daten in der MySQL-Datentabelle chenweiliang_tbl zu lesen:

Beispiel

Probieren Sie die folgenden Beispiele aus und die Ergebnisse werden in aufsteigender und absteigender Reihenfolge sortiert.

SQL-Sortierung

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)

Lesen Sie alle Daten in der Tabelle „chenweiliang_tbl“ und sortieren Sie sie in aufsteigender Reihenfolge nach dem Feld „submission_date“.


Verwenden der ORDER BY-Klausel in einem PHP-Skript

Sie können die PHP-Funktion mysqli_query() und denselben SQL-SELECT-Befehl mit einer ORDER BY-Klausel verwenden, um die Daten abzurufen.

Diese Funktion wird verwendet, um SQL-Befehle auszuführen und dann alle abgefragten Daten über die PHP-Funktion mysqli_fetch_array() auszugeben.

Beispiel

Probieren Sie das folgende Beispiel aus, die abgefragten Daten werden in absteigender Reihenfolge des Felds „submission_date“ zurückgegeben.

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

发表 评论

Ihre E-Mail-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

Nach oben scrollen