1

我有这样的桌子

+----+--------+-------------+
| 编号 | 项目 | 姓名 |
+----+--------+-------------+
| 1 | 1,2,3 | 热卖 |
| 2 | 2,3,4 | 报价 |
+----+--------+-------------+

其中 items 是产品的 id

这是产品表(迷你版)

+-----------+--------+
| 产品ID | 产品名称 |
+-----------+--------+
| 1 | 索尼移动|
| 2 | iphone 4s |
| 3 | 戴尔笔记本电脑v1 |
| 4 | 三星鼠标|
+-----------+--------+

我需要将结果作为名称为 ex [hot Deals =>[(1,sony mobile),(2,iphone 4s),(3,dell laptop v1)],offers=>[--]] 的项目数组

如果不是,可以在(MYSQL)存储过程中实现这一点我如何以最少的查询数实现这一点旁注:第一个表最多有 6 行

4

1 回答 1

0

You can use a join with find_in_set():

select t.id, t.name, p.productname
from yourtable t
   join products p on find_in_set(p.productid, t.items)

As a side note, I'd recommend looking into database normalization. Better to create another 1-n table to store the comma separated values separately.

于 2015-10-27T03:15:40.857 回答