首页 文章

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

提问于
浏览
0

我正在使用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的产品 .

希望这里有足够的信息 . 任何其他想法都很好收到!

谢谢!

3 回答

  • 2

    您可以创建一个临时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;
    
  • 0

    在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;
    
  • 0
    SELECT * FROM products Product {JOINS} WHERE Category.id = 1, Product.active = 1 OR Product.id = 12 LIMIT 0,10;
    

    我认为这应该可行吗?

相关问题