由具有相同id的rand()排序

时间:2014-08-19 14:10:46

标签: mysql random

大家好,我正在寻找一些查询帮助。 我有2张桌子

table

我需要从问题中随机获得所有答案。使用查询

Select * From questions,answers WHERE questions.id = answers.iddomanda

结果是完美的,但如果我使用兰德的订单,这就是结果。

table2

有一种方法可以随机获得问题,随机结束答案吗? 像

这样的东西
id iddomanda question         answer 
4  4         Come va ?        bene
4  4         Come va ?        male
1  1         Come ti chiami ? Michele
1  1         Come ti chiami ? Carlo
2  2         Di dove sei?     San Salvo 
2  2         Di dove sei ?    Vasto 
3  3         Dove vai ?       Lontano 
3  3         Dove vai ?       Lontanissimo 
3  3         Dove vai ?       In giro 
3  3         Dove vai ?       Di la

请求帮助

3 个答案:

答案 0 :(得分:0)

使用子查询以随机顺序选择问题和答案:

SELECT *
FROM (SELECT *
      FROM questions
      ORDER BY RAND()
      LIMIT 10) AS q
JOIN (SELECT *
      FROM answers
      ORDER BY RAND()
      LIMIT 100) AS a
ON q.id = a.iddomanda
LIMIT 10

答案 1 :(得分:0)

rand()排序将提供随机顺序。

您想要的是第一个问题ID和第二个在相同问题ID中的随机订单:

... order by id, RAND() ...

答案 2 :(得分:0)

您需要做的就是将问题ID随机化,然后像这样加入您的答案。

SELECT t.id, t1.iddomanda, t.question, t1.answer 
FROM
(   SELECT id, domanda as question
    FROM questions 
    ORDER BY RAND()
) t
LEFT JOIN 
(   SELECT iddomanda, risposta as answer
    FROM answers
) t1 on t1.iddomanda = t.id;

关于这个查询的好处是你非常简约..问题表将比答案表小得多,所以你只需要随机化一个表和那个较小的表...然后当你加入它将加入他们已经随机化的表格!

DEMO