这似乎有可能,但与此同时我想知道它是否真的可能。
我有一个表{users}。我想从该表中拉出5行,但同时,我想指定一行。
我得到的最接近的sql语句是:
SELECT
u.id, u.full_name, u2.id, u2.full_name
FROM
users u
JOIN
users u2 ON u2.id != 872
WHERE
u.id = 872
LIMIT 4
我知道我可以在两个sql语句中执行此操作,但我想尝试只在一个中执行此操作。
谢谢
Jason246
答案 0 :(得分:2)
SELECT *
FROM users
ORDER BY
u.id = 872 DESC, RANDOM()
LIMIT 5
更有效的方法是将其设置为UNION
:
SELECT *
FROM users
WHERE id = 872
UNION ALL
SELECT *
FROM (
SELECT *
FROM user
WHERE id <> 872
LIMIT 4
) q