order_by_rand可实现随机查询,mysql使用order by rand会全表查询,性能很差,所以尽量少使用。mysql filed()函数就可以实现自定义排序,格式如下:

格式:field(value,str1,str2,str3,str4)

mysql> select * from table_name order by field(id,4,2,3,1);
--结果:
+--------+--------+------------+-------+
| id     | name  
+--------+----------+------------+-------+
|      4 |
|      2 | 
|      3 | 
|      1 | 
+--------+-------+------------+-------+

默认是按 1 2 3 4排序的,使用field()实现了按4 2 3 1排序。