Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Node.js中的MySQL查询更新MySQL数据库中的JSON记录?_Javascript_Php_Mysql_Json_Node.js - Fatal编程技术网

Javascript 如何使用Node.js中的MySQL查询更新MySQL数据库中的JSON记录?

Javascript 如何使用Node.js中的MySQL查询更新MySQL数据库中的JSON记录?,javascript,php,mysql,json,node.js,Javascript,Php,Mysql,Json,Node.js,我得到的JSON结构与此类似: 在回答相同的问题时,我发现使用MySQL查询Node.js插入json记录 是的,我可以通过获取整个记录、更新记录并用更新的记录替换旧记录来更新此记录 但这里我的问题是“我可以在不下载完整json的情况下更新数据库中的这些json记录,并基于json中的一个键更新这些记录吗?” 注意:这只是演示目的:如果我的名字是jsonData "Update tableName set jsonData.choices.answers = 20 where data.cho

我得到的JSON结构与此类似:

在回答相同的问题时,我发现使用MySQL查询Node.js插入json记录

是的,我可以通过获取整个记录、更新记录并用更新的记录替换旧记录来更新此记录

但这里我的问题是“我可以在不下载完整json的情况下更新数据库中的这些json记录,并基于json中的一个键更新这些记录吗?”

注意:这只是演示目的:如果我的名字是jsonData

 "Update tableName set jsonData.choices.answers = 20 where data.choices.choice = 18 and id = 1";    
希望您理解我基于一个键更新JSON记录一个值的场景


任何概念性建议都将不胜感激,如果有演示代码,将非常有用。

Json解码数据,将其转换为数组,访问数组元素并附加到查询:

$a = json_decode($data);
"Update tableName set".$a->col1." =20......."
PHP的json_decode函数接受json字符串并将其转换为 PHP变量。通常,JSON数据将表示JavaScript json_解码将转换为PHP的数组或对象文本 数组或对象


我知道我是在问一个死气沉沉的问题,但当然,这很简单

更新表名
SET jsonData=JSON_SET(jsonData,'$.choices.answers',20)
其中数据->'$.choices.choice'=18
id=1;


阅读my。

您的JSON源代码是什么?URL还是变量?您需要遍历整个对象。可能无法仅拾取部分对象。但是,如果它是一个URL,并且它只允许根据请求查询参数获取特定的PRAM,那么它就可以完成。如果答案是PHP的,可以吗?JSON的源是变量,如本文所述。在我的变量中,所有键都是必需的。而且很有可能许多用户会同时触发该更新查询。所以有可能只有最新的更新才会影响数据库中的数据。没有包含JSON的URL参数@AshishChoudharyYes,如果它是PHP的话就可以了@在这里,首先从tableview中选择该记录,并将其解析为php变量,然后更新该记录。正确的?。如果有20个用户一次触发同一个方法,那么让我们以简单而小的例子来说明,因为一个或多个记录在同一时间被触发,所以有可能不会受到影响。正确的?在这里,我希望直接更新该记录的查询,这样,如果一次有100个用户触发,那么在所有相同的100次操作之后,数据应该是准确的。只有一个更新查询没有选择记录查询。这个问题我不太清楚,但如果你说的是并发更新冲突,在mysql的情况下,它使用可重复读取隔离级别,因此如果两个事务试图更新同一行,第二个事务必须等待第一个事务提交或回滚,因此,无论时间如何,都将插入所有记录。不管怎样,说得好,谢谢
$a = json_decode($data);
"Update tableName set".$a->col1." =20......."