Computer >> Máy Tính >  >> Lập trình >> MySQL

Sắp xếp các bản ghi MySQL một cách ngẫu nhiên và hiển thị tên theo thứ tự Tăng dần

Bạn có thể sử dụng truy vấn con để đặt hàng ngẫu nhiên và hiển thị tên theo thứ tự sắp xếp. Rand () được sử dụng cho ngẫu nhiên, trong khi ORDER BY được sử dụng để hiển thị các bản ghi tên theo thứ tự tăng dần. Cú pháp như sau -

select *from
(
   select *from yourTableName order by rand() limit anyIntegerValue;
) anyVariableName
order by yourColumnName;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Chúng tôi có một ID bán là Tên, mà chúng tôi muốn theo thứ tự Tăng dần. Truy vấn để tạo bảng như sau -

mysql> create table OrderByRandName
   −> (
   −> Id int,
   −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.96 sec)

Hiển thị tất cả các bản ghi từ bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into OrderByRandName values(100,'John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into OrderByRandName values(101,'Bob');
Query OK, 1 row affected (0.11 sec)

mysql> insert into OrderByRandName values(102,'Johnson');
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByRandName values(103,'David');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(104,'Smith');
Query OK, 1 row affected (0.17 sec)

mysql> insert into OrderByRandName values(105,'Taylor');
Query OK, 1 row affected (0.20 sec)

mysql> insert into OrderByRandName values(106,'Sam');
Query OK, 1 row affected (0.12 sec)

mysql> insert into OrderByRandName values(107,'Robert');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(108,'Michael');
Query OK, 1 row affected (0.16 sec)

mysql> insert into OrderByRandName values(109,'Mark');
Query OK, 1 row affected (0.17 sec)

Hiển thị tất cả các bản ghi bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from OrderByRandName;

Sau đây là kết quả -

+------+---------+
| Id   | Name    |
+------+---------+
|  100 | John    |
|  101 | Bob     |
|  102 | Johnson |
|  103 | David   |
|  104 | Smith   |
|  105 | Taylor  |
|  106 | Sam     |
|  107 | Robert  |
|  108 | Michael |
|  109 | Mark    |
+------+---------+
10 rows in set (0.00 sec)

Đây là truy vấn sắp xếp theo hàm rand () và tên hiển thị theo thứ tự tăng dần -

mysql> select *from
   −> (
   −> select *from OrderByRandName order by rand() limit 10
   −> )tbl1
   −> order by Name;

Sau đây là kết quả -

+------+---------+
| Id   | Name    |
+------+---------+
|  101 | Bob     |
|  103 | David   |
|  100 | John    |
|  102 | Johnson |
|  109 | Mark    |
|  108 | Michael |
|  107 | Robert  |
|  106 | Sam     |
|  104 | Smith   |
|  105 | Taylor  |
+------+---------+
10 rows in set (0.39 sec)