mysql逗号以concat()或类似方法

时间:2018-02-17 04:13:07

标签: mysql

Database Setup_Items
id     product
1      53,23,11,57


Database Product
id   name
53   product 53
23   product 23
11   product 11
57   product 57 etc etc etc

所以我有一个Setup_Items(si)的数据库表,它将多个产品组合成一个组。然后我有一个Product(p)的数据库表,用于存储所有产品信息。

我正在使用以下查询根据选择的Setup_Item(si)从Product(p)表中获取信息

SELECT p.id, p.name,p.image
    FROM Setup_Items as si
    INNER JOIN Product as p ON si.products LIKE CONCAT(',', p.id, ',')

继承我的问题。以下项目在数据库中......

Setup_Items.products = 53,23,11,57

当前结果

  1. 得到9个结果... 5,3,53,2,23,1,11,7,57
  2. 将两位数字分为2位数字和单位数字 数字唯一数字。
  3. 需要的结果

    我只需要4个结果。 53,23,11,57

    如何编写此查询以获取这些结果?

    如果有比concat()更好的方法,请告诉我!!!

1 个答案:

答案 0 :(得分:1)

使用FIND_IN_SET:

    SELECT p.id, p.name 
    FROM Setup_Items as si
    INNER JOIN Product as p ON FIND_IN_SET(p.id, si.product)