我在mysql DB上创建了一个字段“数组”,响应如下:Link
当持久化数据时,如下所示:

{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查询中找不到,我尝试了一些东西,但还是找不到
SELECT *
FROM classified_zones cz
WHERE cz.locations_ids IN ( 3492 )发布于 2018-01-14 19:23:14
您可以动态构建一个原理查询,如下所示:
$qb->select('cz')
->from('myBundle:ClassifiedZones', 'cz')
->where('cz.locationsIds LIKE :id')
->setParameter('id', '%:'.strlen($id).':"' . $id . '"%' );最终的sql查询应该类似于Łukasz的响应。
发布于 2018-01-14 16:09:21
以下查询应可用:
SELECT *
FROM classified_zones cz
WHERE cz.locations_ids LIKE '%s:4:"3492";%'发布于 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“
SELECT cz.* FROM classified_zones cz WHERE JSON_CONTAINS(cz.locations_ids, 3492)https://stackoverflow.com/questions/48245485
复制相似问题