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