【问题标题】:Get products by multiple category id通过多个类别 id 获取产品
【发布时间】:2014-04-04 13:27:10
【问题描述】:

我正在尝试进行此类查询, 当我通过 get 进行查询时,我想显示来自 id 的结果,例如,如果我的 GET =11 中有这个 id;

我想显示所有category_id = 11的产品,即使它们有另外一个concat格式的id,我也不知道怎么做这种查询,

 $id = $_GET['id'];
 $sql = "SELECT * FROM `product` WHERE `product_category_id`='$id'";

我的 product_category_id 包含 CONCAT 格式的类别 ID:

product_category_id (type text)
11,30,29

【问题讨论】:

  • 试试这个:WHERE product_category_id IN($id)
  • 回读后,我不明白,因为标识符应该是唯一的。如果我的第一次阅读很好,那可能是 mysql where in 的副本。

标签: php mysql sql phpmyadmin


【解决方案1】:

FIND_IN_SET MySQL 函数可能正是您想要的。

$sql = "SELECT * FROM `product` WHERE FIND_IN_SET('$id', `product_category_id`)";

【讨论】:

  • 正如 Aioros 所说,值得记住的是,这可能会导致查询缓慢。
【解决方案2】:

使用这样的字段,您将不得不执行以下操作:

$sql = "SELECT *
        FROM product
        WHERE product_category_id LIKE '$id,%'
        OR product_category_id LIKE '%,$id,%'
        OR product_category_id LIKE '%,$id'";

不过,一般来说,这将是一个缓慢的查询。

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2011-05-23
    相关资源
    最近更新 更多