获取随机查询结果然后对其进行排序

时间:2014-11-14 14:01:07

标签: php pdo

我需要运行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个结果进行排序。

有什么想法吗?

感谢。

2 个答案:

答案 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);