我有这样的表
+----+-------+-------------+ | id | items | name | +----+-------+-------------+ | 1 | 1,2,3 | hot deals | | 2 | 2,3,4 | offers | +----+-------+-------------+
其中items是产品的ID
这是产品表(迷你版)
+-----------+--------------------+ | productid | productname | +-----------+--------------------+ | 1 | sony mobile | | 2 | iphone 4s | | 3 | dell laptop v1 | | 4 | samsung mouse | +-----------+--------------------+
我需要将结果作为带名字的项目数组 前 [hot deals => [(1,sony mobile),(2,iphone 4s),(3,戴尔笔记本电脑v1) ],提供=> [ - ]]
可以在( MYSQL )存储过程中实现此目的,如果不能如何以最少的查询次数实现此目的 旁注:第一个表最多有6行
答案 0 :(得分:0)
您可以join
使用find_in_set()
:
select t.id, t.name, p.productname
from yourtable t
join products p on find_in_set(p.productid, t.items)
作为旁注,我建议调查数据库规范化。最好创建另一个1-n表来分别存储逗号分隔值。