У меня есть следующие таблицы:
пользователь
id | Name | ...
1 | John |
2 | Richard |
3 | Michael |
книга
id | title | author| ...
1 | ABC | Z |
2 | ABM | X |
3 | IJK | W |
4 | MNO | Z |
5 | ABQ | Y |
fav_book
user_id | book_id
1 | 5 |
1 | 4 |
3 | 1 |
3 | 2 |
3 | 5 |
Теперь, если John
ищет книгу под названием Ab
, я хочу сначала показать его любимую книгу в результатах поиска, а затем остальные.
Выводдля John
поиска Ab
должно быть
id | title
5 | ABQ
1 | ABC
2 | ABM
Я пробовал:
SELECT * FROM (
(SELECT id, title
FROM book
WHERE id IN(5,4) AND title LIKE 'Ab%')
UNION ALL
(SELECT id, title
FROM book )
) tbl ORDER BY ???
ТАК, как я могу манипулировать моим предложением order by
, чтобы получить желаемый результат.Спасибо.