[英]Order mysql results in order for a specific id to be first
我正在使用CakePHP分页来检索一些产品。 问题是,当我点击产品时,我通过AJAX获取内容。 一切正常但我还需要有产品的直接链接,并且没有产品页面(只有AJAX检索的html块)。
所以我用#product-alias hash实现了列表的链接。 如果我在页面中有锚点我模拟点击它并且它工作正常,显示产品的内容。
当我的产品在另一页上时出现问题。 我认为解决方案是强制查询在第一页上检索产品。
当前查询是这样的:
SELECT * FROM products Product {JOINS} WHERE Category.id = 1, Product.active = 1 LIMIT 0,10;
我可以添加什么条件(或ORDER),以便在theese结果中获得id = 12的产品。
希望这里有足够的信息。 任何其他想法都很好收到!
谢谢!
您可以创建一个临时ID,显示与目标ID的相对距离,并按该值排序。 在这种情况下,id 12 :
SELECT *, ABS(Product.id - 12) AS idOrder
FROM products Product
{JOINS}
WHERE Category.id = 1, Product.active = 1
ORDER BY idOrder ASC
LIMIT 0,10;
在WHERE中使用它。 假设ProductId为12,则使用以下语法。
SELECT * FROM products Product {JOINS}
WHERE Category.id = 1, Product.active = 1 AND Product.ProductId=12 LIMIT 0,10;
如果你想跳过12条记录,你可以使用它
SELECT * FROM products Product {JOINS}
WHERE Category.id = 1, Product.active = 1 LIMIT 12,10;
SELECT * FROM products Product {JOINS} WHERE Category.id = 1, Product.active = 1 OR Product.id = 12 LIMIT 0,10;
我觉得这应该有用吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.