好的,这是我的桌子
------------------------------------------------
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()中传递不同的记录,如
random(SELECT type FROM mytable)
更新
我正试图从与该不同id相关联的表和随机字段(类型)中获取不同id
最佳答案
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)