我的mysql出了点问题,不能测试。只能说说思路
GROUP BY width 可以满足“有几个值就提取几行”,但以最后出现的为准
如
15 200
20 200
则得到的是20 200
DISTINCT(width) 也可以满足“有几个值就提取几行”,但以最先出现的为准
如
15 200
20 200
则得到的是15 200
但这不能满足楼主的“随机查询”的要求
所以需要先对表做随机排序然后再取
由于mysql4.1.0以下不支持子查询,所以要使用临时表
CREATE TEMPORARY TABLE temp SELECT * FROM tbl_name ORDER BY rand()
SELECT id, DISTINCT(width) FROM temp