值存储在 company_id 下,例如
["2"]
["2", "1"]
其中 2 和 1 是公司的 ID。现在我想要 ID 2 的所有结果。如何再次触发查询 json 编码数据。
select * from tbl where company_id = 2
这是我需要执行的。
有关更多信息,json 格式是 Zend2 中动态(按数据库值填充)选择列表的结果。
如果它是数组而不是 json,如何执行这个简单的选择查询。
值存储在 company_id 下,例如
["2"]
["2", "1"]
其中 2 和 1 是公司的 ID。现在我想要 ID 2 的所有结果。如何再次触发查询 json 编码数据。
select * from tbl where company_id = 2
这是我需要执行的。
有关更多信息,json 格式是 Zend2 中动态(按数据库值填充)选择列表的结果。
如果它是数组而不是 json,如何执行这个简单的选择查询。
MySQL 有一个名为SET
You can use this data type on this task 的数据类型。这将允许您输入逗号分隔的值,并且仍然能够按单个项目进行查询。
手册:http ://dev.mysql.com/doc/refman/5.0/en/set.html
您的查询必须更新为如下内容:
SELECT * FROM tbl_name WHERE FIND_IN_SET('2', company_id);
但是,出现这个问题是因为表格没有正确规范化。当应用程序达到大规模时,添加引用表并查询该引用表将是一个更好的选择。
由于每个 ID 都是双引号内的数字,因此您可以使用LIKE
语句查询:
select * from tbl where company_id LIKE '%"2"%'
如果它是数组而不是 json,如何执行这个简单的选择查询。
您可以将 JSON 存储到 mysql 数据库中,因为它是一个字符串。但是数组不是字符串,所以你不能把它存储在那里。您需要对其进行序列化,但为此您应该更喜欢 JSON。
另一种方法是创建一个表来存储与公司的关系。