2017-01-06 5 views
0

助けてください[掲載]、例えば、データがあるユーザーログインで*注文を選択する方法?

tbl_user 
| Id | name | 
| 1 | Bayu | 
| 2 | Indra | 
| 3 | Rangga | 

tbl_data 
| Id | userId | items | 
| 1 | 1 | Knife | 
| 2 | 3 | CD | 
| 3 | 1 | Rose | 
| 4 | 3 | HP | 
| 5 | 2 | Honey | 
| 6 | 1 | cups | 
| 7 | 1 | Yarn | 
| 8 | 2 | Shoes | 

私は、ユーザーバユがあるデータの結果をソートするにはログインしたときに、テーブルのデータは、例えばので、ユーザアクセス のみログに記録される項目でソートしたいですデータの先頭自体とは

userId | items | 
1 | Yarn | 
1 | cups | 
1 | Knife | 
1 | Rose | 
2 | Honey | 
2 | Shoes | 
3 | CD | 
3 | HP | 

を持続するときインドラソートの結果ログイン:

userId | items | 
2 | Honey | 
2 | Shoes | 
1 | Yarn | 
1 | cups | 
1 | Knife | 
1 | Rose | 
3 | CD | 
3 | HP | 

またはワット雌鶏Ranggaログイン

userId | items | 
3 | CD | 
3 | HP | 
1 | Yarn | 
1 | cups | 
1 | Knife | 
1 | Rose | 
2 | Honey | 
2 | Shoes | 

どのようにクエリ(MySQL)を選択しますか?ときに、ユーザのログイン、ユーザーIDは、ページ上で渡す$が存在します

select userId, items 
from tbl_data 
order by userId=2 desc, userId asc; 

答えて

2

はこれを試してみてください

$sql = " 
SELECT userId,items 
FROM tbl_data 
ORDER BY if (userID = $userId, 0, userId)"; 
0

イメージング:インドラはログインしている場合たとえば

select userId, items 
from tbl_data 
order by userId=:userId desc, userId asc; 

0

最もエレガントではありませんが、これはすべきことです:

SELECT userID, items FROM tbl_data, tbl_user where userId=tbl_user.id AND tbl_user.name=CURRENT_USER() 
UNION 
SELECT userID, items FROM tbl_data, tbl_user WHERE userId<>tbl_user.id AND tbl_user.name=CURRENT_USER(); 
0

最初にログインしたユーザーでuserIDorder byにしてから、昇順と降順で他のユーザーIDで注文してください。

select userId, items 
from tbl_data 
order by FIELD(userId , $userId) desc, userId asc; 
関連する問題