首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL语句中分隔DB字段

问在SQL语句中分隔DB字段
EN

Stack Overflow用户
提问于 2022-05-03 17:28:17
回答 2查看 35关注 0票数 0

是否有一种方法可以使用SQL语句分隔DB中的字段?

例如,在SQL语句中使用u.address返回{"city": "Fullerton", "first": "369 Acacia Ave", "state": "California", "second": "", "country": "United States", "zipcode": "92831"}。

我希望Excel中的每个地址字段都位于一个单独的列中。如果这很简单我很抱歉。我对SQL不太熟悉。

EN

回答 2

Stack Overflow用户

发布于 2022-05-03 17:34:17

您可以在从数据库中获得返回的内容之后执行该操作。

X={“城市”:"Fullerton","first":"369 Acacia Ave","state":"California","second":"","country":"United States","zipcode":"92831"}

印刷(x“城市”)

票数 0
EN

Stack Overflow用户

发布于 2022-05-03 17:37:10

看起来您的address列被格式化为JSON文档。JSON5.7及更高版本支持MySQL函数,因此您可以执行以下查询:

代码语言:javascript
复制
SELECT
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.city')) AS `city`,
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.first')) AS `first`,
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.state')) AS `state`,
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.second')) AS `second`,
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.country')) AS `country`,
  JSON_UNQUOTE(JSON_EXTRACT(u.address, '$.zipcode')) AS `zipcode`
FROM ...

还有一个速记语法:

代码语言:javascript
复制
SELECT
  u.address->>'$.city' AS `city`,
  ...and similar for each field...

请参阅https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-extract

老实说,几乎在我看到MySQL数据库中使用JSON的每一种情况下,最好使用普通列。

下面是一个演示:

https://www.db-fiddle.com/f/24U6g9FeHqZSfWtgKFKNkG/0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72103252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档