Home > Database > Mysql Tutorial > body text

How to implement query and sorting in mysql

青灯夜游
Release: 2021-12-03 18:36:34
Original
16778 people have browsed it

In mysql, you can use the SELECT statement and the "ORDER BY" keyword to implement the query sorting function. The syntax is "SELECT * FROM data table name ORDER BY field name [ASC|DESC]"; if you set "ASC ” can be sorted in ascending order, and “DESC” can be sorted in descending order.

How to implement query and sorting in mysql

The operating environment of this tutorial: windows7 system, mysql8 version, Dell G3 computer.

In mysql, you can use the SELECT statement and the "ORDER BY" keyword to achieve the query sorting effect.

SELECT statement can query data, and the ORDER BY keyword can sort the data in the query results in a certain order

Grammar:

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

The syntax is explained below.

  • Field name: Indicates the name of the field that needs to be sorted. If there are multiple fields, separate them with commas.

  • ASC|DESC: ASC means the fields are sorted in ascending order; DESC means the fields are sorted in descending order. Among them, ASC is the default value.

When using the ORDER BY keyword, you should pay attention to the following aspects:

  • ORDER BY Keywords can be followed by subqueries.

  • When there is a null value in the sorted field, ORDER BY will treat the null value as the minimum value.

  • ORDER BY When specifying multiple fields for sorting, MySQL will sort from left to right according to the order of the fields.

Single field sorting

The following uses a specific example to illustrate that when ORDER BY specifies a single field, MySQL How to sort query results.

Example 1

The following queries all records in the tb_students_info table and sorts the height field. The SQL statement and running results are as follows.

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)
Copy after login

As you can see from the results, MySQL sorts the data in the height field of the query in ascending order according to the size of the value.

Multi-field sorting

The following uses a specific example to illustrate how MySQL performs query results when ORDER BY specifies multiple fields. Sort.

Example 2

Query the name and height fields in the tb_students_info table, sort by height first, and then by name. The SQL statement and running results are as follows.

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)
Copy after login

Note: When sorting multiple fields, the first field to be sorted must have the same value before the second field is sorted. If all values ​​in the first field's data are unique, MySQL will no longer sort the second field.

By default, the query data is sorted in ascending alphabetical order (A~Z), but the sorting of data is not limited to this. You can also use DESC in ORDER BY to sort the query results in descending order (Z~A ).

Example 3

Query the tb_students_info table, first sort by height in descending order, and then by name in ascending order. The SQL statement and running results are as follows.

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)
Copy after login

DESC keyword only sorts the previous columns in descending order, here only the height field is sorted in descending order. Therefore, height is sorted in descending order, while name is still sorted in ascending order. If you want to sort in descending order on multiple columns, you must specify the DESC keyword for each column.

[Related recommendations: mysql video tutorial]

The above is the detailed content of How to implement query and sorting in mysql. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!