Выбор 5 строк из таблицы, но одна строка специально указана - PullRequest
1 голос
/ 20 января 2010

Это кажется возможным, но в то же время мне интересно, возможно ли это на самом деле.

У меня есть таблица {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

1 Ответ

2 голосов
/ 20 января 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...