mysql - 如何在 mySql JSON 查询中转义句点
问题描述
我正在做一个项目,我需要使用 mySQL DB 以 JSON 格式存储数据。我想以这种格式存储数据:
{
email1:{ data:"This is some data of email1", status:"registered", count:100 },
email1:{ data:"This is some data of email2", status:"unregistered", count:230 },
}
这里的 email1 和 email2 是作为密钥的某人的两封电子邮件。在执行查询以存储和检索这种格式的数据时,我发现电子邮件中也可能包含句点,例如:max.jhon@gmail.com或master.blaster01@gmail.com。
由于键中存在句点,我无法在数据库中执行 json 查询。喜欢:
SELECT JSON_EXTRACT(analytics, "$.max.jhon@gmail.com") FROM EmailsData;
由于$.max.jhon@gmail.com中存在句点而不起作用,并给我这个错误:
错误代码:3143。无效的 JSON 路径表达式。错误在字符位置 8 附近。
有人可以建议我如何在查询中转义这些期间,如果没有,那么以 JSON 格式存储相应电子邮件的数据的最佳方法是什么?
解决方案
您将需要使用类似于以下内容的单引号:
'$."max.jhon@gmail.com"'
请试一试。
推荐阅读
- windows - Postgres 在安装后要求输入与安装密码不匹配的密码
- python - 如何在 Windows 上创建自定义文件格式,解释器使用 JavaScript 或 Python?
- angular - Angular 上传进度功能未按预期工作
- c# - 如何连接具有 Action 属性的实例方法
- matlab - 构建每行变量的矩阵时出现问题
- jhipster - 如何解密存储在数据库中并由 jhipster web-app 生成的密码?
- ruby-on-rails - Rails + GraphQl + Rspec
- ruby-on-rails - Kubernetes readinessProbe 返回“连接拒绝”
- python - 如何将文件文件夹移动到可变名称文件夹
- sql - 在 AWS Athena 中减去两个时间戳列