使用MySQL 的 JSON 函数。虽然该字段不是正式的 JSON 类型,但只要存储在其中的数据是有效的 JSON 格式字符串,你就可以使用这些函数来解析和查询数据。
例:
表名为 my_table,字段有 type,name,info,content,其中info字段存储的是json字符串,但是表结构这个字段为varchar(700)。如图:

存储的数据有个特点就是(不同type类型)每行info的json字段都不一样。现在需要查询 info.dsn_type=”native” 的记录的name值。

直接先上查询语句:
SELECT name FROM my_table WHERE
JSON_VALID(info)
AND JSON_CONTAINS_PATH(info, 'one', '$.dsn_type')
AND info->>'$.dsn_type' = 'native'
LIMIT 0,1;
– JSON_VALID(info) 确保只有有效的 JSON 字符串被处理
– JSON_CONTAINS_PATH(info, ‘one’, ‘$.dsn_type’) 确保只有有.dsn_type字段才被提取处理
– info->>’$.dsn_type’ 就是等同于 JSON_UNQUOTE(JSON_EXTRACT(info,’$.dsn_type’))
– $.dsn_type 是 JSON 路径表达式