JSON 是一种用于存储结构化数据的流行数据格式,并且在数据库列中存储 JSON 对象变得越来越普遍。 MySQL 提供了多种从 JSON 列中提取数据的方法,可以更轻松地根据特定字段查询和过滤数据。
使用 json_extract() (MySQL 5.7 及以上版本)
对于 MySQL 5.7 及更高版本,json_extract() 函数提供了一种从 JSON 对象中提取特定值的便捷方法。示例如下:
SELECT user_id, json_data FROM articles WHERE json_extract(json_data, '$.title') LIKE '%CPU%';
此查询检索 JSON 列中 "title" 字段与模式 匹配的行“%中央处理器%”。它将仅返回提供的示例表中的第一行。
使用 json_unquote() 和 json_contains()(MySQL 8.0 及更高版本)
在 MySQL 8.0 及更高版本中, json_unquote() 函数可用于从 JSON 值中删除双引号,而 json_contains() 函数可用于检查 JSON 对象中是否存在特定值。这是一个替代查询:
SELECT user_id, json_data FROM articles WHERE json_unquote(json_value(json_data, '$.title')) LIKE '%CPU%';
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3