我有一个具有多个类别(c)的表,并且我每次运行此查询时都希望为每个类别选择3个随机行。我选择了3个就很好了,但是注意到它不是在选择随机行,而是每次都选择相同的行。因此,我将回到查询的第一位。
select PLAYERID,
NAME,
RACEID,
VALUE,
MA,
ST,
AG,
LEVEL,
SKILLS,
XP,
TYPE
FROM FAPLAYER
GROUP BY TYPE
ORDER BY RAND()
我正在尝试从FAPLAYER表中获取每个TYPE的3个,其中大概有50个不同的TYPE。
这是我的基本query with RAND的查询输出
答案 0 :(得分:-1)
解决方案1 :看起来“ 按类型分组”给您带来麻烦。试试这个:
SELECT * FROM FAPLAYER
ORDER BY RAND()
LIMIT 3;
解决方案2 : 您是否有ID为自动递增的列?如果是这样,则可以执行以下max = 50,min = 1:
SET @rand_id = (SELECT FLOOR((RAND() * (max-min+1))+min));
SELECT *
FROM FAPLAYER
WHERE RACEID = @rand_id