好的,这是我的表格的样子
------------------------------------------------
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
相关联的随机字段(类型)答案 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)