繁体   English   中英

订购mysql结果,以便首先使用特定的id

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM