我需要运行ORDER BY RAND查询,然后以数字方式对结果数据集进行排序。换句话说,我想要一组随机数据(在这种情况下是7个数字),但是我需要用数字对这7个结果进行排序。
此代码运行后:
if ($today == "Oct 31") {
$dayList = "halloween";
$stmt = $pdo->query("SELECT `rand` FROM `jukebox2014`
WHERE `class` = '$dayList' ORDER BY RAND() LIMIT 7");
}
我需要对7个结果进行排序。
有什么想法吗?
感谢。
答案 0 :(得分:1)
简单如下:
SELECT `rand`
FROM (
SELECT ... ORDER BY RAND() LIMIT 7
)
ORDER BY `rand`
并非ORDER BY RAND() LIMIT 7
是一种选择随机数据的效率相当低的方法;更有效的方法取决于您的确切数据。搜索Stackoverflow有关此主题的许多问题。
答案 1 :(得分:0)
我认为这就是你的意思。
$new = array();
foreach ($results as $result) {
$new[] $result['rand'];
}
$sorted = ksort($new);