Php 如何在MYSQL触发器中解析JSON

Php 如何在MYSQL触发器中解析JSON,php,mysql,json,Php,Mysql,Json,我想在MYSQL触发器中解析JSON格式 {"multicast_id":67784038XXXXXX,"success":1,"failure":0,"canonical_ids":0,"results": [{"message_id":"0:13XXXX280085815%XXXXXXXXX"}]} 实际上,我从我的一个应用程序中得到了一个响应,并将其存储在一个表中(tbl1),因此我尝试在该表中创建一个触发器(tbl1),并解析上述响应,并在另一个表中插入相应的条目(tbl2) 需要在

我想在MYSQL触发器中解析JSON格式

 {"multicast_id":67784038XXXXXX,"success":1,"failure":0,"canonical_ids":0,"results":
[{"message_id":"0:13XXXX280085815%XXXXXXXXX"}]}
实际上,我从我的一个应用程序中得到了一个响应,并将其存储在一个表中(tbl1),因此我尝试在该表中创建一个触发器(tbl1),并解析上述响应,并在另一个表中插入相应的条目(tbl2

需要在MYSQL触发器中解析上面的json格式,以便分别获取所有参数。如何安装?

您可以安装。那么你应该可以做这样的事情:

select common_schema.extract_json_value(d.table1,'/multicast_id') as multicase_id,
common_schema.extract_json_value(d.table1,'/success') as success,
common_schema.extract_json_value(d.table1,'/failure') as failure,
common_schema.extract_json_value(d.table1,'/canonical_ids') as canonical_ids,
common_schema.extract_json_value(d.table1,'/results') as results,
common_schema.extract_json_value(d.table1,'/message_id') as message_id
from database d;

在应用程序的数据库模型中添加代码。PHP有一个很好的用于解析JSON的内置函数,而这对于MySql来说不是一项工作

无论如何,在表中存储原始JSON是不好的,因为它违背了关系数据库的根本目的。除非将JSON字符串视为原始字符串,而不必考虑其在数据库级别的含义。显然情况并非如此


因此,甚至不必麻烦存储JSON字符串。从PHP解析它,并将数据直接存储到
tbl2
中。使用PHP从表中重建JSON字符串非常简单,几乎是即时的(与从数据库中检索数据所需的时间相比)。

您到底想要什么作为输出?解析JSON听起来不适合mySQL。数据从何而来?如果您希望获得性能,请不要使用此选项,而是使用mysql json udf,尽管目前它尚未获得生产批准,但仍能正常工作。公共模式有太多错误,包括json值中的解析减号。尝试分析{“值”:“-1”}