我有一个这样的表:
// mytable
+----+-------+-------+
| id | color | numb |
+----+-------+-------+
| 1 | red | 1 |
| 2 | red | 2 |
| 3 | red | 3 |
| 4 | blue | 1 |
| 5 | blue | 2 |
| 6 | green | 1 |
| 7 | green | 2 |
| 8 | green | 3 |
| 9 | green | 4 |
+----+-------+-------+
现在我想为每个请求随机(动态顺序) 一个不同的顺序。例如,这里是查询:
select * from mytable where color = 'green' order by {?};
第一次执行:
// newtable
+----+-------+-------+
| 7 | green | 2 |
| 6 | green | 1 |
| 8 | green | 3 |
| 9 | green | 4 |
+----+-------+-------+
第二次执行:
// newtable
+----+-------+-------+
| 9 | green | 4 |
| 8 | green | 3 |
| 6 | green | 1 |
| 7 | green | 2 |
+----+-------+-------+
等等...,没有任何特定规则..只是随机的。那么,是否有任何 mysql 函数或任何方法可以做到这一点?
最佳答案
您可以使用 order by rand()
。 rand()
函数产生一个随机值并记录在案 here .
关于mysql - 如何使用mysql随机排序结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251790/