是否有一种方法可以使用SQL语句分隔DB中的字段?
例如,在SQL语句中使用u.address返回{"city": "Fullerton", "first": "369 Acacia Ave", "state": "California", "second": "", "country": "United States", "zipcode": "92831"}。
我希望Excel中的每个地址字段都位于一个单独的列中。如果这很简单我很抱歉。我对SQL不太熟悉。
发布于 2022-05-03 17:34:17
您可以在从数据库中获得返回的内容之后执行该操作。
X={“城市”:"Fullerton","first":"369 Acacia Ave","state":"California","second":"","country":"United States","zipcode":"92831"}
印刷(x“城市”)
发布于 2022-05-03 17:37:10
看起来您的address列被格式化为JSON文档。JSON5.7及更高版本支持MySQL函数,因此您可以执行以下查询:
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 ...还有一个速记语法:
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://stackoverflow.com/questions/72103252
复制相似问题