有没有办法在 SQL Select 语句中使用来自 JSON 对象的值?
Posted
技术标签:
【中文标题】有没有办法在 SQL Select 语句中使用来自 JSON 对象的值?【英文标题】:Is there any way to use values from a JSON object in a SQL Select statement? 【发布时间】:2019-08-07 13:59:52 【问题描述】:我想编写一个查询来选择 JSON 对象的属性中的值与给定字符串匹配的所有记录。例如,假设我有一个包含地址列的表,它是一个 JSON 对象。第一条记录的地址如下所示:
"addressLine": "123 fake road"
"city": "Buffalo"
"state": "New York"
第二条记录的地址是这样的:
"addressLine": "123 fake road"
"city": "New Haven"
"state": "Connecticut"
是否有可能在给定单词“New”的情况下编写一个查询,该查询将返回两条记录,因为 JSON 的值包含该字符串?谢谢!
【问题讨论】:
为您正在使用的 RDBMS 添加标签。 添加mysql标签后,查看我的答案更新 How to retrieve JSON data from mysql?的可能重复 【参考方案1】:您可以使用 JSON_EXTRACT 函数:
SELECT * FROM Table WHERE json_extract(JsonColumn, '$.city') like 'New%'
其他信息
Functions That Search JSON Values Parsing json with mysql How to retrieve JSON data from mysql? How can write queries in MySQL that can parse JSON data in a column?【讨论】:
如何回答这个问题?我在搜索某些内容的代码中看不到任何内容。而且我错过了对代码创始人的明确归属。 @PaulSpiegeljson_extract(JsonColumn, '$.city') like 'New%'
@PaulSpiegel 我提供了 OP 可以从中受益的方法,并展示了如何从 JSON 读取列的示例。怎么不相关??
如果这回答了问题,那么它应该作为复制代码的位置的副本关闭。
@PaulSpiegel 我从 GitHub 复制了代码并提供了链接,此外,我还提供了与此问题类似的所有链接。此外,您有权将其标记为重复以上是关于有没有办法在 SQL Select 语句中使用来自 JSON 对象的值?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法选择引用游标的内容作为 SQL Select 语句的一部分?