1

我有一个样本数据:

id|category_id|name
--------------
1|1|test 1
2|1|test 2
3|1|test 3
4|2|test 4
5|2|test 5
6|2|test 6

和 mysql

SELECT p.id, p.name, p.category_id 
FROM `test` AS p 
WHERE (SELECT count(*) FROM `test` f WHERE f.category_id = p.category_id AND f.id <= p.id) <= 2 
ORDER BY RAND()

结果是:

1|1|test 1
2|1|test 2
4|2|test 4
5|2|test 5

=> 但是结果不能 RANDOM() 值来获取其他值(id=3 和 id=6),如何解决?

4

1 回答 1

0

试试这个.. 将 RAND 放在 where 子句中,而不是 ORDER BY 中......

SELECT p.id, p.name, p.category_id FROM testAS p WHERE (SELECT count(*) FROM testf WHERE f.category_id = p.category_id AND f.id <= p.id) <= 2 AND RAND() < = 6

于 2012-10-01T07:44:33.333 回答