如何搜索json
假设我有一组数据联系人,
$cont = array("123-123-123","sample@sample.com");
我把它存储在symfony2 doctrine字段中作为json_array
类型
$person->setContacts($cont); //Which automatically converts into json
现在我的问题是,在通过联系搜索该人的同时,
$cont['contacts'] = array("123-123-123","sample@sample.com");
or
$cont['contacts'] = json_encode(array("123-123-123","sample@sample.com"));
$person->findBy($cont);
不会产生正确的结果,是否有任何其他方法通过json_array
字段检索数据,如果问题太基本,则很抱歉。
如果您想对其执行搜索,则不应该使用JSON存储在数据库中。
你试图做的是基本上坚持一个值对象(你应该创建一个真正的联系人值对象,而不是使用数组)。
然后你可以在这里找到几个解决方案来坚持价值对象。 http://rosstuck.com/persisting-value-objects-in-doctrine/
第一个(自己映射)与ZhukV相同,即使保留一个数组也是适用的。
如果您使用PostgreSQL> 9.3,则可以使用json(或jsonb)数据类型。
您可以在这里阅读文档(数据类型JSON文档)。
用JSON搜索 - 对于SQL数据库来说不好。 您可以创建另一个字段(电话和电子邮件)。
在绑定到PDO之前的所有值,在DBAL Types中自动转换,并且必须将真正的数据设置为参数(对象,数组等等)。
$cont['contacts'] = array("123-123-123","sample@sample.com");
$person->findBy($cont);
这是一个工作代码。 您可以看到分析器查看完整的SQL查询。
链接地址: http://www.djcxy.com/p/79279.html上一篇: how to search json
下一篇: Custom sorting list of strings (following Chamorro language collation rules)