查询结果来自逗号分隔值并查询要显示的每个值

时间:2013-12-26 08:55:58

标签: mysql sql select join find-in-set

我有一个包含ID,日期和逗号分隔字段的表格。 例如值如:

id    date         options

1     2013-12-26   3006,3009,4010
2     2013-12-25   3002,3001,5090
3     2013-12-24   2909,1012,6089
4     2013-12-23   3001,4009,5008

查询特定日期后,例如2013-12-26我的结果为3006,3009,4010 现在我有另外一张桌子2和这些单独的nos。还有其他字段。

根据这些结果,我需要创建一个表格,分别显示这些3006,3009,4010的结果。

如: 表2中具有此值的所有行的3006内容可能是固定的或表单的某些输入字段,因此如果我在提交后输入此创建表单中的值,则应该得到下一个否。即3009等等。

我能够显示这些数字的所有结果。在一起,但我需要让他们分开。所以我得到了 3006提交表格的结果 3009提交表格的结果 4010提交表格的结果。等

1 个答案:

答案 0 :(得分:0)

您可以使用FIND_IN_SET()功能。

试试这个:

SELECT a.id, a.date, a.options, b.* 
FROM tableA a 
INNER JOIN tableB a ON FIND_IN_SET(b.id, a.options)

注意:根据我的说法,在单个记录中存储多个ID并不是一个好的表格设计。 不要设计这种类型的表。尝试创建映射表,其中两个表ID都映射到哪里。尝试以1NF或更多适用的数据创建数据库

多对多关系的示例:

**many-to-many relationship**