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

=>しかし、結果は他の値(id = 3およびid = 6)を取得するためにRANDOM()値を取得できません。修正方法は?

4

1 に答える 1

0

これを試してください..RANDをORDERBYではなくwhere句に入れてください...

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 に答える