You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中查询数组字段包含值11的行?

查询MySQL中数组格式列包含指定值的行

针对你的场景(my_offsets列存储类似[1,2,10,11,111,112]的字符串格式数组),可以用以下两种常用方法实现查询:

方法1:使用FIND_IN_SET函数

先将数组字符串的方括号去除,转换为逗号分隔的纯字符串,再用FIND_IN_SET判断目标值是否存在:

无空格的数组元素场景

SELECT *
FROM your_table_name
WHERE FIND_IN_SET('11', REPLACE(REPLACE(my_offsets, '[', ''), ']', '')) > 0;

数组元素带空格的场景(比如[1, 2, 11])

需要额外去除空格:

SELECT *
FROM your_table_name
WHERE FIND_IN_SET('11', REPLACE(REPLACE(REPLACE(my_offsets, '[', ''), ']', ''), ' ', '')) > 0;

方法2:使用正则表达式(更灵活)

通过正则匹配确保11是数组中的独立元素,避免误匹配111、112这类包含11但并非目标值的情况:

SELECT *
FROM your_table_name
WHERE my_offsets REGEXP '(\[|,\s*)11(\s*,|\])';

这个正则的逻辑是:匹配数组开头的[,或者逗号加任意空格;然后匹配目标值11;最后匹配任意空格加逗号,或者数组结尾的],确保11是独立的数组元素。

内容的提问来源于stack exchange,提问作者zabitstack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:30:42