Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询逗号分隔值的结果,并查询要显示的每个值_Mysql_Sql_Select_Join_Find In Set - Fatal编程技术网

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

Mysql 查询逗号分隔值的结果,并查询要显示的每个值,mysql,sql,select,join,find-in-set,Mysql,Sql,Select,Join,Find In Set,我有一个带有ID、日期和逗号分隔字段的表。 e、 g.价值观,如: 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,我得到的结果为30063094010 现在我有了另一个表2,

我有一个带有ID、日期和逗号分隔字段的表。 e、 g.价值观,如:

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,我得到的结果为30063094010 现在我有了另一个表2,其中有这些单独的编号,还有其他字段

基于这些结果,我需要创建一个表单,分别显示这些30063094010的结果

例如: 3006表2中具有此值的所有行的内容可能是固定的,也可能是表单的某些输入字段,因此,如果我在提交后在此创建的表单中输入值,我将获得下一个编号,即3009等等

我可以一起显示这些编号的所有结果,但我需要将它们分开。这样我就可以 3006提交表格的结果 3009提交表格的结果 4010提交表格的结果。等等。

您可以使用函数

试试这个:

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或更高版本创建数据库

多对多关系的示例


Never,Never,Never在一列中存储多个值!步骤1:规范化数据库。如果您知道如何从表2中获取数据。。我假设您是基于存储选项的标识符字段来执行此操作的?在您的查询中,只需添加一个排序方式选项,其中(3006309410)中的ID2提供了组合结果。在MYSQL中,您可以使用函数来连接这些表。这并不意味着您应该这样做@在我的回答中,我已经添加了一个不适用于此方法的选项。但是对于这个特定的问题,我已经给出了解决方案,我还希望OP重新设计他的数据库结构实际上这些逗号分隔的值在表2中是ID。此表2有多个具有相同ID的行,这意味着表2中有10到15行ID为3006,依此类推。@user3136074然后您可以在表之间使用
many-to-many
关系,并创建一个映射表,该映射表将具有
tableA
ID列和
tableB的
ID
列,表1是为当前日期临时创建的用户和他从表单中的下拉列表中选择多个选项,这些选项在一天开始时用逗号分隔的值插入表1中,之后当经理有空时,他开始填写所选选项的数据,他应该得到填充的选项,然后输入值,在这里我坚持一次得到一个特定的选项,而不是页面应该显示的下一个选项,依此类推。