Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk melaksanakan pertanyaan dan menyusun dalam mysql

Bagaimana untuk melaksanakan pertanyaan dan menyusun dalam mysql

青灯夜游
青灯夜游asal
2021-12-03 18:36:3416793semak imbas

Dalam mysql, anda boleh menggunakan pernyataan SELECT dan kata kunci "ORDER BY" untuk melaksanakan fungsi sorting pertanyaan Sintaks ialah "SELECT * FROM data table name ORDER BY field name [ASC|DESC]"; jika anda menetapkan "ASC ” boleh diisih dalam tertib menaik dan “DESC” boleh diisih dalam tertib menurun.

Bagaimana untuk melaksanakan pertanyaan dan menyusun dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam mysql, anda boleh menggunakan pernyataan SELECT dan kata kunci "ORDER BY" untuk mencapai kesan pengisihan pertanyaan.

SELECT pernyataan boleh menanyakan data dan kata kunci ORDER BY boleh mengisih data dalam hasil pertanyaan dalam susunan tertentu

Sintaks:

SELECT * FROM 数据表名 ORDER BY 字段名 [ASC|DESC]

Sintaks diterangkan di bawah.

  • Nama medan: Menunjukkan nama medan yang perlu diisih Jika terdapat berbilang medan, pisahkan dengan koma.

  • ASC|DESC: ASC bermaksud medan diisih mengikut tertib menaik; Di mana DESC ialah nilai lalai. ASC

Apabila menggunakan kata kunci

, anda harus memberi perhatian kepada aspek berikut: ORDER BY

  • Kata kunci boleh diikuti dengan subquery. ORDER BY

  • Apabila terdapat nilai nol dalam medan diisih,

    akan menganggap nilai nol sebagai nilai minimum. ORDER BY

  • Apabila menentukan berbilang medan untuk mengisih, MySQL akan mengisih dari kiri ke kanan mengikut susunan medan. ORDER BY

Isih medan tunggal

Yang berikut menggunakan contoh khusus untuk menggambarkan bahawa apabila ORDER BY menentukan satu medan, MySQL Bagaimana untuk mengisih hasil pertanyaan.

Contoh 1

Pertanyaan berikut untuk semua rekod jadual tb_students_info dan mengisih medan ketinggian Pernyataan SQL dan hasil yang dijalankan adalah seperti berikut.

mysql> SELECT * FROM tb_students_info ORDER BY height;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.08 sec)
Seperti yang anda boleh lihat daripada keputusan, MySQL mengisih data dalam medan ketinggian pertanyaan dalam tertib menaik mengikut nilai berangka.

Isih berbilang medan

Yang berikut menggunakan contoh khusus untuk menggambarkan cara MySQL melaksanakan hasil pertanyaan apabila ORDER BY menentukan berbilang medan.

Contoh 2

Soal medan nama dan ketinggian dalam jadual tb_students_info, susun mengikut ketinggian dahulu, dan kemudian mengikut nama Penyataan SQL dan hasil yang dijalankan adalah seperti berikut .

mysql> SELECT name,height FROM tb_students_info ORDER BY height,name;
+--------+--------+
| name   | height |
+--------+--------+
| Green  |    158 |
| Dany   |    160 |
| Jane   |    162 |
| Lily   |    165 |
| Tom    |    165 |
| Susan  |    170 |
| John   |    172 |
| Jim    |    175 |
| Thomas |    178 |
| Henry  |    185 |
+--------+--------+
10 rows in set (0.09 sec)
Nota: Apabila mengisih berbilang medan, medan pertama yang hendak diisih mesti mempunyai nilai yang sama sebelum medan kedua diisih. Jika semua nilai dalam data medan pertama adalah unik, MySQL tidak lagi akan mengisih medan kedua.

Secara lalai, data pertanyaan diisih mengikut susunan abjad menaik (A~Z), tetapi pengisihan data tidak terhad kepada ini Anda juga boleh menggunakan DESC dalam ORDER BY untuk mengisih hasil pertanyaan dalam menurun pesanan (Z~A ).

Contoh 3

Soal jadual tb_students_info, mula-mula susun mengikut ketinggian dalam tertib menurun, dan kemudian dengan nama dalam tertib menaik Penyataan SQL dan hasil yang dijalankan adalah seperti berikut .

mysql> SELECT name,height FROM tb_student_info ORDER BY height DESC,name ASC;
+--------+--------+
| name   | height |
+--------+--------+
| Henry  |    185 |
| Thomas |    178 |
| Jim    |    175 |
| John   |    172 |
| Susan  |    170 |
| Lily   |    165 |
| Tom    |    165 |
| Jane   |    162 |
| Dany   |    160 |
| Green  |    158 |
+--------+--------+
10 rows in set (0.00 sec)
Kata kunci DESC hanya mengisih lajur sebelumnya dalam tertib menurun, di sini hanya medan ketinggian diisih dalam tertib menurun. Oleh itu, ketinggian diisih dalam tertib menurun, manakala nama masih diisih dalam tertib menaik. Jika anda ingin mengisih mengikut tertib menurun pada berbilang lajur, anda mesti menentukan kata kunci DESC untuk setiap lajur.

[Cadangan berkaitan:

tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan dan menyusun dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn