name等利用这些-6ren">
gpt4 book ai didi

mysql - 如果未知,则将 MySQL json 列参数访问为 NULL

转载 作者:行者123 更新时间:2023-11-29 09:48:02 25 4
gpt4 key购买 nike

我有一个名为 data 的 JSON 列类型,具有以下值:

{"name": "tester", "email": "tester@example.com"}

我可以通过data->name等利用这些值。

但是,如果我尝试访问诸如data->phone之类的未知参数,则会收到未知参数错误,因为该特定参数不存在。

如果我尝试访问不存在的参数,如何查询此参数,使其默认为 null

最佳答案

提取 JSON 字段的语法不是 data->phone,而是 data->'$.phone'

参见https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_json-column-path

如果您正确使用语法,当没有找到与您的搜索匹配的字段时,它会返回 NULL。

MySQL 8.0.14 演示:

create table j (data json);

insert into j set data='{"name": "tester", "email": "tester@example.com"}';

select data->email from j;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'email from j' at line 1

select data->'$.email' from j;
+----------------------+
| data->'$.email' |
+----------------------+
| "tester@example.com" |
+----------------------+

select data->'$.phone' from j;
+-----------------+
| data->'$.phone' |
+-----------------+
| NULL |
+-----------------+

关于mysql - 如果未知,则将 MySQL json 列参数访问为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313039/

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