数据库:相关字段包含多个值

时间:2019-06-21 14:33:22

标签: sql database

这是桌子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相关的数字吗?

1 个答案:

答案 0 :(得分:0)

如果通过 relate 表示要联接表,则可以使用LIKE运算符:

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

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