在mysql中只返回一次随机行

2ekbmq32  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(218)

我正在尝试使用 RAND() 功能。但在结果行中重复了不止一次。有没有任何方法可以以一行只返回一次的方式返回随机行?
我的问题是: SELECT h.recid recid, h.name name, h.subtitle subtitle, h.pricingfrom pricingfrom FROM holydays h ORDER BY RAND() 我找到了这个解决方案,但我不明白它是如何工作的,因为我没有任何限制。。。任何回答都将不胜感激。!

njthzxwz

njthzxwz1#

这个 ORDER BY 查询的子句与结果集无关,除非 LIMIT 正在使用,但它不在这里。我觉得你的table上有重复的记录。如果您想要无重复项的随机排序,请选择“使用” DISTINCT :

SELECT DISTINCT
    recid,
    name,
    subtitle,
    pricingfrom
FROM holydays
ORDER BY RAND();
5cnsuln7

5cnsuln72#

它是按顺序工作的,随机的列,比如,有id,name,emai,然后是时间顺序id,name,email,或者是时间顺序name,id,emai等等,然后是asc中的时间顺序,desc中的时间顺序,这就是逻辑。

相关问题