MySQL-ORDER BY Rand()总是给出相同的结果

时间:2019-05-29 06:58:28

标签: mysql

我有一个查询可以选择和分组随机记录,如下所示:

SELECT PRDT_CODE FROM (
    SELECT * FROM CTGR
    INNER JOIN PRDT on PRDT.PRDT_CTGR = CTGR.CTGR_CODE AND PRDT.PRDT_STUS = 'A'
    INNER JOIN PFIL on PFIL.PFIL_PRDT = PRDT.PRDT_CODE AND PFIL.PFIL_MAIN = 1
    ORDER BY RAND()
) A
GROUP BY CTGR_CODE
LIMIT 4;

在MySQL Workbench和PhpMyAdmin上执行相同的查询。

从工作台获得的结果集是完全随机的(这是我想要的)。另一方面,尽管使用了ORDER BY RAND()关键字,但PhpMyAdmin返回相同的结果集。

知道为什么会这样吗?

编辑

工作台中的结果:

第一次运行: enter image description here

第二轮: enter image description here

PMA结果:

第一次运行: enter image description here

第二轮: enter image description here

预期输出:Workbench的结果集;

实际输出:PMA的结果集

1 个答案:

答案 0 :(得分:0)

尝试在“ out”查询中使用订单

SELECT * FROM (
    SELECT * FROM CTGR
    INNER JOIN PRDT on PRDT.PRDT_CTGR = CTGR.CTGR_CODE AND PRDT.PRDT_STUS = 'A'
    INNER JOIN PFIL on PFIL.PFIL_PRDT = PRDT.PRDT_CODE AND PFIL.PFIL_MAIN = 1
    ) A
GROUP BY CTGR_CODE
ORDER BY RAND()
LIMIT 4;
相关问题