如何在 mySql JSON 查询中转义句点

How to escape a period in mySql JSON query

我正在做一个项目,我需要使用 mySQL 数据库以 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.commaster.blaster01@gmail.com.

并且由于键中存在句点,我无法在数据库中执行 json 查询。像: SELECT JSON_EXTRACT(analytics, "$.max.jhon@gmail.com") FROM EmailsData; 由于 $.max.jhon@gmail.com 中存在句点而无法工作,并给我这个错误:

Error Code: 3143. Invalid JSON path expression. The error is around character position 8.

有人可以建议我如何在查询中转义这些时间段吗?如果不能,那么以 JSON 格式为各个电子邮件存储数据的最佳方式是什么?

您将需要使用类似于以下内容的单引号:

'$."max.jhon@gmail.com"'

请试一试。