首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在数组类型字段Doctrine和Mysql中查找

在数组类型字段Doctrine和Mysql中查找
EN

Stack Overflow用户
提问于 2018-01-14 08:04:10
回答 3查看 340关注 0票数 1

我在mysql DB上创建了一个字段“数组”,响应如下:Link

当持久化数据时,如下所示:

代码语言:javascript
复制
{i:0;s:4:"3410";i:1;s:4:"3415";i:2;s:4:"3459";i:3;s:4:"3460";i:4;s:4:"3492";}

但是在sql查询中找不到,我尝试了一些东西,但还是找不到

代码语言:javascript
复制
SELECT  *
FROM classified_zones cz
WHERE cz.locations_ids IN ( 3492 )
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-14 19:23:14

您可以动态构建一个原理查询,如下所示:

代码语言:javascript
复制
$qb->select('cz')
   ->from('myBundle:ClassifiedZones', 'cz')
   ->where('cz.locationsIds LIKE :id')
   ->setParameter('id', '%:'.strlen($id).':"' . $id . '"%' );

最终的sql查询应该类似于Łukasz的响应。

票数 3
EN

Stack Overflow用户

发布于 2018-01-14 16:09:21

以下查询应可用:

代码语言:javascript
复制
SELECT *
FROM classified_zones cz
WHERE cz.locations_ids LIKE '%s:4:"3492";%'
票数 1
EN

Stack Overflow用户

发布于 2018-01-15 19:09:38

不要使用“不熟悉的格式”,MySQL支持原生JSON数据类型。

请参阅:https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html#function_json-contains

例如:

locations_ids = "1,2,3,3492“

代码语言:javascript
复制
SELECT cz.* FROM classified_zones cz WHERE JSON_CONTAINS(cz.locations_ids, 3492)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48245485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档