首页 > 解决方案 > 数据库:相关字段包含多个值

问题描述

这是表 1:

| code | fruit  |
|  1   | Orange |
|  2   | Apple  |
|  3   | Grape  |
|  4   | Mango  |

这是表2:

| name   | fruitcode |
| Jack   | 1, 3      |
| Alice  | 2         |
| Emma   | 1, 2, 4   |

我的问题是,table2.fruitcode其中包含的数字可以与table1.code吗?

标签: sqldatabase

解决方案


如果通过关联您的意思是加入表格,您可以使用LIKE运算符:

select *
from table1 t1 inner join table2 t2
on concat(',', replace(t2.fruitcode, ' ', ''), ',') like concat('%,', t1.code, ',%')

大多数数据库都支持函数concat()replace().
但这只是针对特定问题的解决方案。
很快,您将面临这些简单的技巧无法解决的问题。
最好的解决方案是从一开始就规范化您的表格。


推荐阅读