当我们将 MySQL ORDER BY 子句与 RAND() 函数一起使用时,结果集将具有经过打乱的行集。换句话说,结果集将按随机顺序排列。要理解它,请考虑一个具有以下记录的表“Employee” -
mysql> Select * from employee; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 1 | Gaurav | 50000 | | 2 | Rahul | 20000 | | 3 | Advik | 25000 | | 4 | Aarav | 65000 | | 5 | Ram | 20000 | | 6 | Mohan | 30000 | | 7 | Aryan | NULL | | 8 | Vinay | NULL | +----+--------+--------+ 8 rows in set (0.00 sec)
现在,下面的查询将使用 ORDER BT RAND() 来打乱结果集中的行集 -
mysql> Select * from Employee ORDER BY RAND(); +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 4 | Aarav | 65000 | | 1 | Gaurav | 50000 | | 3 | Advik | 25000 | | 7 | Aryan | NULL | | 6 | Mohan | 30000 | | 8 | Vinay | NULL | | 5 | Ram | 20000 | | 2 | Rahul | 20000 | +----+--------+--------+ 8 rows in set (0.00 sec)

loyee;
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 1 | Gaurav | 50000 |
| 2 | Rahul | 20000 |
| 3 | Advik | 25000 |
| 4 | Aarav | 65000 |
| 5 | Ram | 20000 |
| 6 | Mohan | 30000 |
| 7 | Aryan | NULL |
| 8 | Vinay | NULL |
+----+--------+--------+
8 rows in set (0.00 sec)




![Go 中切片操作 s[i:j] 的边界理](http://public-space.oss-cn-hongkong.aliyucs.com/gz/047.jpg)

