如何在mysql表中搜索json数组字段中的字段?
Posted
技术标签:
【中文标题】如何在mysql表中搜索json数组字段中的字段?【英文标题】:How to search in mysql table where field in json array field? 【发布时间】:2020-10-04 06:00:13 【问题描述】:我有一个带有 JSON 数组字段的表, 我想要一个基于此字段从另一个表返回结果的查询
table_a
+----+-------------+
| id | interestIds |
+----+-------------+
| 1 | [1, 2, 6, 7]|
+----+-------------+
table_b
+----+-------------+
| id | country |
+----+-------------+
| 1 | Ghana |
| 2 | Grenada |
| 3 | Jordan |
| 4 | Latvia |
| 5 | Malawi |
| 6 | Mexico |
| 7 | Moldova |
+----+-------------+
我想要像这样的查询
select * from table_b where id in (select interestIds from table_a where id = 1)
【问题讨论】:
【参考方案1】:你可以使用json_search()
:
select b.*
from table_b
where exists (
select 1 from table_a a where json_search(a.interestIds, 'one', b.id) is not null
)
【讨论】:
以上是关于如何在mysql表中搜索json数组字段中的字段?的主要内容,如果未能解决你的问题,请参考以下文章
mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操作?
如何将数据库中的一个表中的字段拿出几个封装成json,用于页面显示?