1

テーブルからランダムな行を取得したいのですが、この行はカテゴリ順に並んでいる必要があります。

select category, 
   (select order_number 
   from orders 
   where order_number in (123,125,128,129,256,263,966,258,264,159,786) 
   order by rand()) 
from orders 
order by category

これは私が試したクエリです。しかし、それはテーブル内のデータ全体を取得します。


作業クエリ;

SELECT category,order_number FROM (
    SELECT category,order_number 
    from orders 
    where order_number in (`$order_numbers_variable`) 
    order by rand()
) order by category
4

1 に答える 1

1

要件は次のとおりだと思います: 'category' でソートされたテーブルから 'N' 個のランダムな行を取得します

N10であると仮定しましょう。行数を変更する場合は、LIMIT 句で変更します。

SELECT * FROM (
    SELECT category from orders ORDER BY rand() ASC  LIMIT 10
) AS innerResult 
ORDER BY innerResult.category
于 2013-01-14T10:33:27.817 に答える