4

ユーザーの最初の 40 リストを取得するための sql クエリがあります。そのリストで常に 1 人のユーザーを取得したいです。ユーザー ID を制限付きで指定するクエリのメソッドはありますか

4

5 に答える 5

5

私が考えることができる最良の方法は次のとおりです。

SELECT * FROM tbl WHERE userid='your-user-id' UNION SELECT * FROM tbl WHERE userid!='your-user-id' LIMIT 39

基本的に、ユーザーを選択してから、他の 39 人を選択します。UNION を使用して、2 つの SELECT 結果を結合します。

于 2012-07-09T08:40:02.050 に答える
1
SELECT 
    *
FROM
    `users`
WHERE 
    `user_id` != 12345
LIMIT 39
UNION SELECT 
    *
FROM
    `users`
WHERE
    `user_id` = 12345
ORDER BY `user_id`
;

これにより、最初の 39 ユーザー + user_id=12345 のユーザーが得られます。

于 2012-07-09T08:42:38.690 に答える
0

私はそれがあるだろうと思います

(SELECT * from users limit 39)
UNION ALL
(SELECT * from users where userid='your-user-id') 
于 2012-07-09T08:33:11.983 に答える
0
Select * from table order by userd_id limit 40
于 2012-07-09T08:33:53.983 に答える
0

ほとんどのオプションはすでに提供されているため、これが役立つかどうかを確認してください

select name from user_details where id = user_id || id != user_id  order by field (id,user_id) desc limit 40;

これにより、結果を組み合わせることができます。必要に応じて、指定したユーザー ID が常に一番上に表示されます。

于 2012-07-09T10:44:33.597 に答える