我正在尝试使用 RAND() 功能。但在结果行中重复了不止一次。有没有任何方法可以以一行只返回一次的方式返回随机行?我的问题是: SELECT h.recid recid, h.name name, h.subtitle subtitle, h.pricingfrom pricingfrom FROM holydays h ORDER BY RAND() 我找到了这个解决方案,但我不明白它是如何工作的,因为我没有任何限制。。。任何回答都将不胜感激。!
RAND()
SELECT h.recid recid, h.name name, h.subtitle subtitle, h.pricingfrom pricingfrom FROM holydays h ORDER BY RAND()
njthzxwz1#
这个 ORDER BY 查询的子句与结果集无关,除非 LIMIT 正在使用,但它不在这里。我觉得你的table上有重复的记录。如果您想要无重复项的随机排序,请选择“使用” DISTINCT :
ORDER BY
LIMIT
DISTINCT
SELECT DISTINCT recid, name, subtitle, pricingfrom FROM holydays ORDER BY RAND();
5cnsuln72#
它是按顺序工作的,随机的列,比如,有id,name,emai,然后是时间顺序id,name,email,或者是时间顺序name,id,emai等等,然后是asc中的时间顺序,desc中的时间顺序,这就是逻辑。
2条答案
按热度按时间njthzxwz1#
这个
ORDER BY
查询的子句与结果集无关,除非LIMIT
正在使用,但它不在这里。我觉得你的table上有重复的记录。如果您想要无重复项的随机排序,请选择“使用”DISTINCT
:5cnsuln72#
它是按顺序工作的,随机的列,比如,有id,name,emai,然后是时间顺序id,name,email,或者是时间顺序name,id,emai等等,然后是asc中的时间顺序,desc中的时间顺序,这就是逻辑。