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排序。