查询以获取其相关字段的不同ID和随机字段

时间:2011-01-13 11:23:17

标签: mysql

好的,这是我的表格的样子

------------------------------------------------
Textid                  type
-----------------------------------------------
1                      a
2                      b
1                      a
1                      c
2                      c
1                      a
3                      a
------------------------------------------------

现在,我需要一个可以给我输出的查询......

-------------------------------------
Distinct(textid)   |   rand(type)   | 
--------------------------------------
1                          a
2                          c
3                          a                   
--------------------------------------

rand(type)给我编号....我是否需要在rand()中传递不同的记录,如random(SELECT type FROM mytable)

更新

我试图从表中获取一个不同的id和与该不同id

相关联的随机字段(类型)

1 个答案:

答案 0 :(得分:1)

SELECT  textid,
        (
        SELECT  type
        FROM    mytable mi
        WHERE   mi.textid = md.textid
        ORDER BY
                RAND()
        LIMIT 1
        )
FROM    (
        SELECT  DISTINCT textid
        FROM    mytable 
        ) md

mytable (textid, type)上创建一个复合索引,以便快速工作:

CREATE INDEX ix_mytable_textid_type ON mytable (textid, type)