【发布时间】:2014-02-21 03:10:57
【问题描述】:
我正在尝试构建一个 mysql 查询,让我可以搜索受子查询(大小)约束的产品,并且有一个偏移量以允许在网站上进行分页。
网址可能如下所示:
http://www.[webshop].com?category=shirts&size=m&page=2
以下查询仅在偏移量为 0 时才有效(例如 page=0)
$limit = 50;
$offset = $page * 50;
SELECT *
FROM ((SELECT * FROM sales WHERE sale_id IN (SELECT sales_sizes.sale_id FROM sales_sizes WHERE sales_sizes.size = '.$size.') '.$search_string.' ORDER BY created_at DESC LIMIT '.$limit.' OFFSET '.$offset.') s)
LEFT JOIN sales_sizes ss ON s.sale_id = ss.sale_id
LEFT JOIN sales_images si ON s.sale_id = si.sale_id
LEFT JOIN sales_prices sp ON s.sale_id = sp.sale_id
在这种情况下,您将如何实现限制偏移?
它必须有一个子查询约束,所以我可以返回一定大小的产品。
【问题讨论】:
-
如果你把
LIMIT...OFFSET子句放在句子的末尾?