У меня есть sliders
таблица.Это выглядит примерно так:
+----+-----------+-----------+
| id | video_url | image_url |
+----+-----------+-----------+
| 1 | null | imgurl1 |
+----+-----------+-----------+
| 2 | null | imgurl2 |
+----+-----------+-----------+
| 3 | null | imgurl3 |
+----+-----------+-----------+
| 4 | vidurl1 | null |
+----+-----------+-----------+
Я могу достичь того, что хочу, используя этот запрос:
(SELECT * FROM sliders WHERE image_url IS NOT NULL LIMIT 1)
UNION
(SELECT * FROM sliders WHERE video_url IS NOT NULL LIMIT 1)
UNION
(SELECT * FROM sliders)
В принципе, порядок, который я хочу:
- Первое изображение
- Первое видео
- ...
- Все остальное
Итак, на примере, результат должен быть (на основе идентификатора) равен [1,4,2,3] .
Возможно ли воссоздать без использования предложения UNION
?
Кстати, я использую Ruby on Rails в этом проекте и в настоящее время использую find_by_sql
для выполнения запроса.Если бы вы могли помочь мне использовать ActiveRecord
, это было бы здорово.
На данный момент я не вижу способа объединения таблиц при использовании ActiveRecord.