我有一个sql查询,用于获取前40个用户列表。我想在该列表中始终检索一个用户。他们在查询中是否有任何方法指定具有限制的用户id
我能想到的最好的方法是:
SELECT * FROM tbl WHERE userid='your-user-id' UNION SELECT * FROM tbl WHERE userid!='your-user-id' LIMIT 39
基本上,您选择自己的用户,然后再选择39个其他用户。使用UNION将两个SELECT结果连接起来。
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的用户。
Select * from table order by userd_id limit 40
我想那应该是
(SELECT * from users limit 39)
UNION ALL
(SELECT * from users where userid='your-user-id')
由于已经提供了大多数选项,请检查这是否有助于
select name from user_details where id = user_id || id != user_id order by field (id,user_id) desc limit 40;
这将给你组合的结果&如果你想要的话,你指定的用户id将始终处于首位。