Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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
Php 在SQL字段中有一个数组。如何系统地展示它?_Php_Mysql_Sql_Codeigniter - Fatal编程技术网

Php 在SQL字段中有一个数组。如何系统地展示它?

Php 在SQL字段中有一个数组。如何系统地展示它?,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我在数据提要中有一个字段,其中包含一些用逗号分隔的值。对于一条记录,值为: A06,C05,C06,C15,C18,C19,C21,C22,E05,E22,G11,J02,J07,L04,L07,M01,M05,N03,N07,N10,N11,N12,N18,N19,N20,N24,O02,O03,O04,O06,O09,O14,O15,O16,O20,O21,O31,Q01,Q04,Q08,R07,S08,T08,T12,T23,T32,U01,U03,U04,U06,U13,W09,W11,

我在数据提要中有一个字段,其中包含一些用逗号分隔的值。对于一条记录,值为:

A06,C05,C06,C15,C18,C19,C21,C22,E05,E22,G11,J02,J07,L04,L07,M01,M05,N03,N07,N10,N11,N12,N18,N19,N20,N24,O02,O03,O04,O06,O09,O14,O15,O16,O20,O21,O31,Q01,Q04,Q08,R07,S08,T08,T12,T23,T32,U01,U03,U04,U06,U13,W09,W11,W16,W19,W30,W45,X02,X03,X12,Z07
我有一个单独的表,其中有一些关于每个代码含义的描述。当我查询主表并将此字段名作为值时,我可以使用explode将其放入数组中,并使用foreach循环输出每个值

问题是,我想显示存储在另一个表中的描述。通过迭代来在列表中显示这些值的正确方法是什么

例如,C21表示封闭社区。

您可以使用此函数

你有这样的记录吗

Orders Table
------------------------------------
OrderID     |     attachedCompanyIDs
------------------------------------
   1                     1,2,3               -- comma separated values
   2                     2,4     

使用函数

SELECT name 
FROM orders, company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
将导致

name
---------------
Company 1
Another Company
StackOverflow
你可以用这个函数

你有这样的记录吗

Orders Table
------------------------------------
OrderID     |     attachedCompanyIDs
------------------------------------
   1                     1,2,3               -- comma separated values
   2                     2,4     

使用函数

SELECT name 
FROM orders, company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
将导致

name
---------------
Company 1
Another Company
StackOverflow

由于您已经标记了codeigniter,您可以使用内置活动记录的方法$this->db->where_in;为了得到描述。例如,考虑下面的代码

$codes = array('A06', 'C05', 'C06'); $this->db->where_in('description', $codes); // Produces: WHERE codes IN ('A06', 'C05', 'C06') 有关Codeigniter活动记录的更多信息,请参阅


有关mysql WHERE IN如何工作的更多信息,请参考

,因为您已经标记了codeigniter,您可以使用内置活动记录的方法$this->db->WHERE_IN;为了得到描述。例如,考虑下面的代码

$codes = array('A06', 'C05', 'C06'); $this->db->where_in('description', $codes); // Produces: WHERE codes IN ('A06', 'C05', 'C06') 有关Codeigniter活动记录的更多信息,请参阅


有关mysql WHERE IN works的更多信息,请参见本书,在SQL语言中使用关系是最好的方法

为了理解这一点,我建议你阅读这篇简单的文章
也许这是为了选择数据,或者在网上搜索你自己,我建议你自己试试这些例子。SQL关系是很好的,出于安全性和许多其他原因,它是必要的。

仅仅是为了遵守规则,在SQL语言中实现这一点的最佳方法就是使用关系

为了理解这一点,我建议你阅读这篇简单的文章
也许这是为了选择数据,或者在网上搜索你自己,我建议你自己试试这些例子。SQL关系是良好的,出于安全性和许多其他原因,SQL关系是必要的。

我相信OP还打算将拆分的记录与另一个表进行匹配。我觉得你的回答没有清楚地表明这一点。我相信OP还打算将拆分的记录与另一个表进行匹配。我觉得你的回答并不能清楚地表明这一点。如果你觉得过去的问题有用,你为什么不考虑接受它呢?如果你觉得过去的问题有用,你为什么不考虑接受它呢?