按随机和字段排序 MySQL 查询?
Posted
技术标签:
【中文标题】按随机和字段排序 MySQL 查询?【英文标题】:Ordering MySQL Query By Random and a Field? 【发布时间】:2010-10-27 11:32:15 【问题描述】:我正在尝试找到一种方法来提取 10 条随机记录,然后按字段对这 10 条记录进行排序。我尝试了以下方法:
SELECT name FROM users ORDER BY RAND(), name LIMIT 10
但它不按名称排序,返回 10 行,只是以任意顺序返回 10 条随机记录。有没有办法通过 rand() 和 mysql 查询中的字段进行排序?
【问题讨论】:
【参考方案1】:SELECT name
FROM (
SELECT name
FROM users
ORDER BY
RAND()
LIMIT 10
) q
ORDER BY
name
【讨论】:
我希望有一个不涉及子查询的解决方案,因为实现子查询会很困难 @ryanzec:子查询有什么困难? 这个查询是通过一个复杂的过程使用一堆不同的表单值创建的,并且还被解码以生成表单字段的值。并不是说它不能完成,但我必须弄清楚如何正确生成查询(我不是首先创建此查询生成过程的人),然后确保它不会破坏解码查询(使用一堆正则表达式)。只是希望不到一天的解决方案(可能最终在 MySQL 中进行随机排序,在 php 中进行字段排序) @ryanzec:只有10
值,在PHP
一侧进行排序可能会更好。【参考方案2】:
最后只是在 php 中进行排序。
【讨论】:
以上是关于按随机和字段排序 MySQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章