Bagaimana untuk melaksanakan pertanyaan menaik dalam mysql

青灯夜游
Lepaskan: 2022-02-17 17:08:25
asal
12890 orang telah melayarinya

Dalam mysql, anda boleh menggunakan pernyataan "SELECT" dan kata kunci "ORDER BY" untuk melaksanakan pertanyaan menaik, sintaks "SELECT {*|field column name} FROM table name [WHERE condition] GROUP BY field nama ASC;

Bagaimana untuk melaksanakan pertanyaan menaik 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 melaksanakan pertanyaan menaik.

Pernyataan SELECT digunakan untuk menanyakan data dan kata kunci ORDER BY digunakan terutamanya untuk mengisih data dalam hasil pertanyaan dalam susunan tertentu.

Sintaks asas:

SELECT {*|字段列名} FROM 表名 [WHERE 条件] GROUP BY 字段名 [ASC|DESC];
Salin selepas log masuk

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; ASC ialah nilai lalai.

Apabila menggunakan kata kunci ORDER BY, anda harus memberi perhatian kepada aspek berikut:

  • Kata kunci ORDER BY boleh diikuti dengan subquery (tentang apa yang mengikuti subquery Tutorial akan menerangkannya secara terperinci, hanya belajar di sini).

  • Apabila terdapat nilai nol dalam medan diisih, ORDER BY akan menganggap nilai null sebagai nilai minimum.

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

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 dalam 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)
Salin selepas log masuk

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, isih mengikut ketinggian dahulu, dan kemudian mengikut nama Penyataan SQL dan hasil larian 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)
Salin selepas log masuk

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)
Salin selepas log masuk

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 menaik dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan