【问题标题】:MySQL Selecting records by multiple IDs with LIMIT per each ID 4MySQL 通过多个 ID 选择记录,每个 ID 有 LIMIT 4
【发布时间】:2019-01-10 10:23:04
【问题描述】:

我被查询困住了。场景是这样的: - 我需要为每个类别选择最多 4 个产品名称。 - 我正在使用这个查询,但它不能按我需要的方式工作 - 每个 cat_id 与 product_name 限制 4

结果将包含来自整个查询输出的 4 行。

   $sql_course = "SELECT * FROM product WHERE cat_id IN('".$brand_filter."') ORDER BY cat_id LIMIT 4";

我想要这个

cat_id1- product1
cat_id1- product2
cat_id1- product3
cat_id1- product4

cat_id2- product5
cat_id2- product6
cat_id2- product7
cat_id2- product8

【问题讨论】:

标签: php


【解决方案1】:

限制正在影响您的输出,因为它只带来四条记录。

【讨论】:

  • 我希望每个 id 有 4 条记录
  • 那是因为你对整个查询都使用了限制。
  • 我建议您获取所有记录,然后使用您的 php 逻辑为每个类别仅显示 4 条记录,否则您必须为此在 Mysql 中编写一个自定义函数。
【解决方案2】:
 $sql_course = "SELECT * FROM product WHERE cat_id IN('".$brand_filter."') GROUP BY cat_id ORDER BY cat_id LIMIT 4";

我想这会起作用,请尝试检查结果。

【讨论】:

  • $sql_course = "SELECT * FROM CAT_ID IN(SELECT DISTINCT CAT_ID FROM PRODUCT) GROUP BY CAT_ID ORDER BY CAT_ID LIMIT 4";
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 2021-01-23
  • 2022-11-26
  • 2016-03-11
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多