如何在 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.com 或 master.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"'
请试一试。
我正在做一个项目,我需要使用 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.com 或 master.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"'
请试一试。