情况
我在MariaDB数据库中有一个表。这个表有一个LONGTEXT列,用于存储一个JSON数组(在MariaDB JSON Data Type中阅读更多关于这个主题的信息)。
问题
我想根据某个键从JSON数组中提取值。我如何使用MariaDB(或MySQL)来实现这一点?
示例
下面是简化的表thing
(仅用于演示):
| 标识符|事物名称|这些例子|
| - -|- -|- -|
| 第0页|果实|[{"color": "green","title": "Apple"},{"color": "orange","title": "Orange"},{"color": "yellow","title": "Banana"}]
个|
| 一个|汽车|[{"color": "silver","title": "VW"},{"color": "black","title": "Bentley"},{"color": "blue","title": "Tesla"}]
|
我的目标是从JSON数组中提取所有的title
值。
1条答案
按热度按时间flseospp1#
您可以使用JSON_EXTRACT来执行此任务(适用于MariaDB和MySQL)。此函数还支持通配符,如以下文档中所述:
路径可以包含 * 或**通配符
根据您是否有多个数据级别(例如,单个文档与数组),应使用单个或两个星号通配符:
json
是一个有效的JSON文档(例如一个列),key
是使用的查找关键字。以您为例
要查找JSON数组中的所有
title
值,请使用以下查询:| 标识符|事物名称|示例_标题|
| - -|- -|- -|
| 第0页|果实|
["Apple", "Orange", "Banana"]
|| 一个|汽车|
["VW", "Bentley", "Tesla"]
|