テーブルがあり、作成された最新の10レコードとIDがxのレコードを返すクエリが必要です。
私がやろうとしている-
SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
しかし、LIMIT
の前にUNION
を配置できるようには見えません。別の列を追加して、並べ替えに使用してみました-
SELECT id, date_modified, IF(false, 1, 0) as priority FROM catalog_productimage
UNION
SELECT, id, date_modified, IF(true, 1, 0) as priority FROM catalog_productimage
WHERE id=5
ORDER BY priority, date_modified
LIMIT 10;
でも私はあまり進歩していません。
これが機能することを確認しました:
(SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10)
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
これにより、10日から20日までのレコードが得られ、開始できるはずです。SQLfiddleで返信します。
SELECT *
FROM (SELECT ROW_NUMBER () OVER (ORDER BY cat_id) cat_row_no, a.* FROM catalog_productimage a where x=5)
WHERE cat_row_no > 10 and cat_row_no <20