2009-03-12 17 views

答えて

3

私はあなたの中にすべてのユーザーを持つ "users"という2番目のテーブルがあると仮定します。そうでない場合、あなたはまだお買い上げで別のSELECT DISTINCTサブクエリを追加することによってこれを行うことができ、それは非常にメシエ次のようになります。

SELECT orders.* 
FROM orders 
INNER JOIN (SELECT userid, RAND() as random FROM users) tmp 
ON orders.userid = tmp.userid 
ORDER BY tmp.random, tmp.userid 

あなたは2つのユーザIDあればそう乱数とユーザーIDで注文したいと思います同じ乱数を取得すると、それらの注文はすべて混乱することはありません。

+0

私が探していたものです。どうもありがとう! – Gerardo

+0

これはMS SQL Serverでは機能しません。 RAND()は定数に評価され、すべてのuser_idに 'random'の同じ値を与えます... – MatBailie

+0

彼はMySQLを使用しています。 –

0

どのようにランダムでなければなりませんか?私はいくつかの可能な答えを考えることができます。

"ランダム"シーケンスを反復可能にする必要がある場合は、MD5または自分で作成した独自のものを使用して、ユーザーIDのハッシュでソートできます。 ORDER BY MD5()、secondary_sort_column。

0

order by reverse(user)?

関連する問題