我有一个用于获取前 40 个用户列表的 sql 查询。我想始终在该列表中检索一个用户。他们在查询中的任何方法是否指定具有限制的用户 ID
问问题
111 次
5 回答
5
我能想到的最好方法是:
SELECT * FROM tbl WHERE userid='your-user-id' UNION SELECT * FROM tbl WHERE userid!='your-user-id' LIMIT 39
基本上,您选择您的用户,然后选择其他 39 个用户。您使用 UNION 来连接两个 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 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 回答
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 回答