选择所有列但在一列上不同且随机

时间:2015-01-09 09:13:38

标签: mysql

我有下表:

ID   Type    Name
1     1      first value
2     1      2nd value
3     2      3rd value

我想为每个Name选择一个随机Type的行。如果我使用group by Type选项,它会返回两行,总是(first value3rd value),但我想让它随机:有时first value,有时{{} 1}}。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

嗯,你的结果是“随机”的,你不能总是得到相同的结果。 MySQL只是给你一些名字的“随机”值。但是,为了获得某些值,他们只需通过表格并选择他们首先或最后看到的内容,因此只要表格不变,结果也不会改变。 / p>

知道这一点,只需先改变行的顺序:

select type, name
from
(
  select type, name
  from mytable
  order by rand()
) randomly
group by type;

SQL小提琴:http://www.sqlfiddle.com/#!2/31560/7