2011-06-27 12 views
2

私はの結果を注文しようとしています。MySQLクエリは、その行の下にあるフィールドのユーザー設定データに基づいています。MySQLクエリの並べ替え

私はこのように設定し、「割り当て」と呼ばれるテーブルを持っている:

id user_id item_id 
-- ------- ------- 
1 1  1 
2 1  23 
3 1  304 

私はこのように保存されるユーザーテーブルに基づいて、これらの結果を注文することができるようにしたい:

3,1,2 

アイデア

+0

シナリオが明確ではありません。別のテーブルに応じてクエリ結果をソートしますか? – mahadeb

答えて

2

あなたはFIELDオプションを使用することができます。

idはあなたが注文したいと以下の注文IDがであるために、テーブルのフィールドです
SELECT * FROM assigned ORDER BY FIELD(id,3,1,2) 

1

あなたは結果があなたが望むよう命じ取得するキーワードORDER BYを使用する必要があります:あなたのケースで

SELECT column_name(s) 
FROM table_name 
ORDER BY column_name(s) ASC|DESC 

、あなたでしょう

ORDER BY user_id 

それはあなたの質問に答えていない場合は

、してください、あなたが望むものをより正確に教えてください。

マックスは

0

あなたは、リレーショナル・データベース内のテーブルの行が暗黙の順序を持​​っていることを前提としていてはいけません。すなわち、今日「SELECT * FROM users」があなたが望む順序でデータを返すかもしれない間、それは明日とは異なるかもしれません。

原則として列にも同じことが当てはまりますが、MySQLは他のリレーショナルデータベースと比較して珍しいことですが、列の順序を明示的に指定することができます。

序数を示す列をユーザーテーブルに追加し、割り当てられたテーブルへの結合を使用して並べ替えます。

+0

私がしようとしているのは、ユーザーアカウントの配列に基づいて一連のデータを注文することです。 –