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

如何编写SQL查询筛选check_list列含machine_id=12的jobs表行

SQL查询:筛选JSON数组中包含指定machine_id的行

针对你的场景——jobs表的check_list列(varchar(max)类型,存储JSON数据),要筛选出items数组中存在machine_id = 12的数据行,以下是可靠的SQL解法(以SQL Server为例):

SELECT *
FROM jobs
WHERE EXISTS (
    SELECT 1
    FROM OPENJSON(jobs.check_list, '$.items')
    WITH (
        machine_id INT '$.machine_id'
    ) AS parsed_items
    WHERE parsed_items.machine_id = 12
)

说明:

  • OPENJSON(jobs.check_list, '$.items'):将check_list字段里的items JSON数组解析为关系型行集
  • WITH子句:定义要从每个数组元素中提取的字段,这里指定提取machine_id(映射为INT类型,对应JSON路径$.machine_id)
  • EXISTS子查询:判断当前行的JSON数组中是否存在符合machine_id = 12的元素,存在则保留该行

不推荐的写法(谨慎使用):

如果临时应急,也可以用字符串匹配,但这种方法依赖JSON的格式(比如键的拼写、空格位置),容易出现误判:

SELECT *
FROM jobs
WHERE check_list LIKE '%machine_id":12%'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:25:44