Heim  >  Artikel  >  Datenbank  >  So sortieren Sie Daten in MySQL

So sortieren Sie Daten in MySQL

WBOY
WBOYnach vorne
2023-05-30 22:10:575170Durchsuche

1. Grundlegende Verwendung der Sortierung

  1. Wenn beim Abfragen von Daten keine Sortieroperation verwendet wird, ordnet SQL die Abfrageergebnisse standardmäßig in der Reihenfolge an, in der Tupel hinzugefügt werden.

  2. Um Sortiervorgänge in SQL durchzuführen, können Sie das Schlüsselwort ORDER BY… verwenden. Nach diesem Schlüsselwort können Sie das Schlüsselwort ASC (ascend) hinzufügen, um die aufsteigende Reihenfolge (von klein nach groß) anzugeben, und DESC (descend), um die absteigende Reihenfolge (von groß nach klein) anzugeben.

  3. Wenn ASC oder DESC nach dem Schlüsselwort ORDER BY... nicht hinzugefügt wird, um die aufsteigende oder absteigende Reihenfolge anzugeben, verwendet SQL standardmäßig die aufsteigende ASC-Reihenfolge. Wie im folgenden Code gezeigt:

SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary;

Abfrageergebnisse:

So sortieren Sie Daten in MySQL

[Beispiel 1] Fragen Sie employee_id und last_name von Mitarbeitern in der Mitarbeitertabelle <code>employees , salary und department_id Informationen. Und sortieren Sie nach Gehalt vom größten zum kleinsten (absteigende Reihenfolge). employees 中的员工的 employee_idlast_namesalarydepartment_id 信息。并按 salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC;

查询结果:

So sortieren Sie Daten in MySQL

二、 使用列的别名来排序

在SQL中,可以使用字段 (列) 的别名来进行排序。因为有时我们需要计算表中没有的字段 (如年薪 annual_salary ) ,或者有些字段名字实在是太长了,使用简短的别名可以提高我们编程的效率。如下例子所示:

【例子】查询员工表 employees 中的员工的 employee_idlast_name 、月薪 salary 和 年薪 annual_salary 信息。并按 annual_salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary, 
salary * (1 + IFNULL(commission_pct, 0) * 12) AS "annual_salary"
FROM employees
ORDER BY annual_salary DESC;

查询结果:

So sortieren Sie Daten in MySQL

【注意】

  • 格式要求,WHERE 必须声明在 FROM 后。

  • 列的别名只能在 ORDER BY... 中使用,不能在 WHERE 中使用。**如果在 WHERE 中使用列的别名,SQL会报错。那为什么MySQL中列的别名不能在 WHERE 中使用呢?原因如下:

【原因】

SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id IN(50, 60, 70)
ORDER BY department_id DESC;
  • 在SQL中,查询语句的执行顺序不遵循上述代码从第1行到第4行从上往下的顺序。而是首先执行第2行 FROM... ,先去找要查询的表。

  • 再执行第3行 WHERE... ,去筛选符合条件的元组。

  • 然后执行第1行 SELECT... ,显示你要查询的字段。由于在这一步才会生成列的别名,因此无法在上一步中使用它提供的 WHERE 语句。但是可以提供给下一步的 ORDER BY 来使用。

  • 最后才是第4行 ORDER BY... ,按某列排序。这个时候可以使用列的别名来进行排序。

查询结果:

So sortieren Sie Daten in MySQL

三、 二级排序

在实际生活中,有时候我们需要在按照一个字段排序后再按照另一个字段排序。在SQL中我们可以使用二级排序来实现。使用方法请看下面例子:

【例子1】查询员工表 employees 中的员工的员工ID employee_id 、名字 last_name 、月薪 salary 和部门ID department_id 。并先按部门ID department_id 降序排列,再按 salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary, department_id
FROM employees
ORDER BY department_id DESC, salary DESC;

查询结果:

So sortieren Sie Daten in MySQL

依次类推,可以在 ORDER BYrrreee

Abfrageergebnisse: 🎜🎜Wie sortiert MySQL Daten🎜 🎜 2. Spalten-Aliase zum Sortieren verwenden 🎜🎜In SQL können Sie Feld-(Spalten-)Aliase zum Sortieren verwenden. Da wir manchmal Felder berechnen müssen, die nicht in der Tabelle enthalten sind (z. B. Jahresgehalt annual_salary) oder einige Feldnamen wirklich zu lang sind, kann die Verwendung kurzer Aliase die Effizienz unserer Programmierung verbessern. Wie im folgenden Beispiel gezeigt: 🎜🎜[Beispiel] Fragen Sie die employee_id, den last_name und das monatliche Gehalt salary der Mitarbeiter in der Mitarbeitertabelle ab mitarbeiter code> und Jahresgehalt annual_salary Informationen. Und sortieren Sie nach annual_salary vom größten zum kleinsten (absteigende Reihenfolge). 🎜rrreee🎜Abfrageergebnisse: 🎜🎜Wie sortiert MySQL Daten🎜 🎜 【Hinweis】🎜
    🎜🎜Formatanforderungen, WHERE muss nach FROM deklariert werden. 🎜🎜🎜🎜Spaltenaliase können nur in ORDER BY... verwendet werden, nicht in WHERE. **Wenn Sie Spaltenaliase in WHERE verwenden, meldet SQL einen Fehler. Warum können in MySQL keine Spaltenaliase in WHERE verwendet werden? Die Gründe sind wie folgt: 🎜🎜
🎜[Ursache]🎜rrreee
    🎜🎜In SQL folgt die Ausführungsreihenfolge von Abfrageanweisungen nicht dem obigen Code aus Zeile 1 bis Zeile 4 Reihenfolge von oben nach unten. Stattdessen führen Sie zunächst Zeile 2 FROM... aus und suchen zunächst die abzufragende Tabelle. 🎜🎜🎜🎜Führen Sie Zeile 3 WHERE... erneut aus, um Tupel zu filtern, die die Bedingungen erfüllen. 🎜🎜🎜🎜Dann führen Sie Zeile 1 SELECT... aus, um die Felder anzuzeigen, die Sie abfragen möchten. Da der Spaltenalias erst in diesem Schritt generiert wird, kann die von ihm bereitgestellte WHERE-Anweisung im vorherigen Schritt nicht verwendet werden. Es kann aber im nächsten Schritt von ORDER BY verwendet werden. 🎜🎜🎜🎜Die letzte Zeile ist ORDER BY... , die nach einer bestimmten Spalte sortiert ist. Derzeit können Sie Spaltenaliase zum Sortieren verwenden. 🎜🎜
🎜Abfrageergebnisse: 🎜🎜Wie sortiert MySQL Daten? 🎜🎜3. Sortierung der zweiten Ebene🎜🎜Im wirklichen Leben müssen wir manchmal nach einem Feld und dann nach einem anderen Feld sortieren. In SQL können wir dies durch sekundäre Sortierung erreichen. Bitte sehen Sie sich das folgende Beispiel für die Verwendung an: 🎜🎜[Beispiel 1] Fragen Sie die Mitarbeiter-ID employee_id, den Namen last_name und das monatliche Gehalt der Mitarbeiter in der Mitarbeitertabelle ab Mitarbeiter Gehalt und Abteilungs-ID department_id. Sortieren Sie zunächst nach der Abteilungs-ID department_id in absteigender Reihenfolge und dann nach Gehalt von groß nach klein (absteigende Reihenfolge). 🎜rrreee🎜Abfrageergebnisse: 🎜🎜Wie sortiert MySQL Daten🎜 🎜 Analog dazu können Sie nach ORDER BY ein Komma hinzufügen, um eine Sortierung auf dritter oder vierter Ebene zu erreichen. 🎜

Das obige ist der detaillierte Inhalt vonSo sortieren Sie Daten in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen