gpt4 book ai didi

mysql - 在 MySQL 中提取 JSON 提取的第一个键

转载 作者:行者123 更新时间:2023-12-02 02:58:37 24 4
gpt4 key购买 nike

这些是我的表的列和值:

ID | RULE
123 | {"buy":{"10000":{"q":1}},"total":{"t":"DOLLAR_OFF","v":4.05}}
445 | {"buy":{"11000":{"q":1}},"total":{"t":"DOLLAR_OFF","v":2.25}}

我的预期输出:

ID | ArticleInfo
123 | 10000
445 | 11000

非常卡住。

最佳答案

答案取决于您为该列使用的数据类型。

如果您使用的是 JSON 数据类型,那么您可以使用 JSON_EXTRACT 和 JSON_KEYS 的组合来提取 key

例如,如果你运行

SELECT ID, JSON_EXTRACT(JSON_KEYS(JSON_EXTRACT(RULE, '$.buy')),"$[0]") AS ArticleInfo FROM test;

它会回来

ID | ArticleInfo
123 | "10000"
445 | "11000"

如果键实际上总是数字,您可以通过将它们乘以 1 将它们转换为整数。

SELECT ID, (JSON_EXTRACT(JSON_KEYS(JSON_EXTRACT(RULE, '$.buy')),"$[0]") * 1) AS ArticleInfo FROM test;
ID | ArticleInfo
123 | 10000
445 | 11000

如果它是 CHAR/VARCHAR/TEXT,那么您可以使用与上面相同的方法,但首先使用 CAST(RULE AS JSON)将 varchar 转换为 JSON

E.G

SELECT id, 
(JSON_EXTRACT(JSON_KEYS(JSON_EXTRACT(CAST(rule AS JSON), '$.buy')),"$[0]")* 1)
FROM test;

如果您使用的 MySQL 版本不支持 JSON,那么您可以结合使用 SUBSTRING、POSITION 和其他字符串函数

关于mysql - 在 MySQL 中提取 JSON 提取的第一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60508994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com