Здравствуйте.
Подскажите возможно ли вывести из БД ну скажем десять последних записей
SELECT * FROM table ORDER BY id DESC LIMIT 10
и к этим последним записям сделать выборку по условию
Для примера у меня есть 30 записей из них десять последних выводится на экран и две записи которые соответствуют определенному условию WHERE… ну и конечно что бы записи не повторялись если вдруг одна из последних записи будет соответствовать так же и условию?
Сейчас поясню что я хочу получить на выходе (конечно если получится сделать это одним запросом.
Для примера:
Есть таблица которая содержит 100 записей. У этих записей есть ячейка test по умолчанию значение NULL.
У записей с id 1, 3, 5, 10 ячейка test имеет значение value. Так вот как вывести 10 последних записей которые на данный момент имеют id с 91 по 100 + 4 дополнительных записи с id 1, 3, 5, 10
Количество записей может всегда меняться. Так же может случится так что в последней из 10 записи значение ячейки test может быть value и эта запись должна вывестись один раз без повтора
Мне в голову приходит только выполнения двух запросов в первом это вывести 10 последних записи и во втором вывести уже поиск по условию НО хотелось бы всё сделать в одном запросе
у меня стойкое ощущение, что Вы придумали себе лишние сущности и пытаетесь получить не то, что именно Вам нужно, но, если я понял Вас правильно, попробуйте так:
(
SELECT * FROM `TABLE1`
ORDER BY id Desc LIMIT 10
)UNION (
SELECT * FROM `TABLE1` where `test` = 'value'
)
ORDER BY id ASC