我有一张表,希望能够查询出最后创建的十条记录,并包含ID为x的记录。
我的尝试:
SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
但是看起来我无法在UNION
之前放置LIMIT
。我尝试添加另一列并使用它进行排序 -
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;
但是我没有取得太多进展。
UNION
实际上是选择语句的一部分,而选择语句的语法要求LIMIT
必须在UNION
之后。因此,您需要显式结束第一个表达式。由于这个语法要求,您需要在UNION
的末尾使用LIMIT
。这样,LIMIT
将应用于联合的结果。有关更多详细信息,请参阅选择文档。 - Mr. Deathless