隨機排列 MySQL 記錄並以升序方式顯示名稱
您可以使用子查詢隨機排序,並按升序顯示名稱。rand() 用於隨機,而 ORDER BY 用於按升序顯示名稱記錄。語法如下 −
select *from ( select *from yourTableName order by rand() limit anyIntegerValue; ) anyVariableName order by yourColumnName;
為了理解上述概念,讓我們建立一個表。我們有一個 ID 出售以及 Name,我們希望按升序排列。建立表查詢如下 −
mysql> create table OrderByRandName −> ( −> Id int, −> Name varchar(100) −> ); Query OK, 0 rows affected (0.96 sec)
使用 insert 命令顯示錶中的所有記錄。查詢如下 −
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)
使用 select 語句顯示所有記錄。查詢如下 −
mysql> select *from OrderByRandName;
以下為輸出 −
+------+---------+ | 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)
以下是按 rand() 排序並按升序顯示名稱的查詢 −
mysql> select *from −> ( −> select *from OrderByRandName order by rand() limit 10 −> )tbl1 −> order by Name;
以下為輸出 −
+------+---------+ | 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)
廣告