MYSQL +选择2列 - 1列为唯一

时间:2012-03-05 07:42:49

标签: mysql

我有一张如下表格:

 domainname    english
 www.a.com     apples
 www.a.com     peaches
 www.b.com     oranges
 www.b.com     banana
 www.c.com     watermelon

我想选择一个域名和英语的随机列表,但域名是唯一的。例如:

 www.a.com     apples
 www.b.com     banana
 www.c.com     watermelon

结果每次都需要随机。

我已阅读本网站上的其他示例并尝试了以下内容,但它没有提供唯一的域名列表 - 例如:它们出现两次或更多次:

 SELECT DISTINCT(domainname),english FROM table WHERE domainname ORDER BY RAND();

希望有人能给出一些建议。

欢呼声

3 个答案:

答案 0 :(得分:3)

尝试此查询:

SELECT * FROM (
  SELECT * FROM table ORDER BY RAND()) t
GROUP BY
  domainname

答案 1 :(得分:0)

尝试此查询distinct不使用多列名称

SELECT DISTINCT(domainname) FROM table WHERE domainname ORDER BY RAND();

答案 2 :(得分:0)

如果english列是表格的PRIMARY KEY(或具有UNIQUE约束条件),您也可以使用此列:

SELECT t.*
FROM 
      ( SELECT DISTINCT domainname
        FROM tableX
      ) AS dd
  JOIN
      tableX AS t
    ON t.english =
       ( SELECT tt.english  
         FROM tableX AS tt
         WHERE tt.domainname = dd.domainname
         ORDER BY RAND()
         LIMIT 1
       )