Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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
Php 更新重复密钥,删除未更新_Php_Mysql_Pdo - Fatal编程技术网

Php 更新重复密钥,删除未更新

Php 更新重复密钥,删除未更新,php,mysql,pdo,Php,Mysql,Pdo,问题是: 我有一个列表(a、B、C),其中a+B代表一个唯一的键。一些记录需要更新(设置在C上),一些记录是新的,表中不存在唯一的A+B键。最完美的方法是在重复密钥更新时插入,但是。。。应删除未更新的行(在a列的已考虑值内-所有已考虑更新的a值相同)。问题是最好的方法是什么,最好是最短的查询/存储过程。我找到了解决方法,但我正在寻找一个更特殊的解决方案 我这样做的方式是有一个todelete标志。在更新之前,在所有行上将其设置为1,然后在更新期间将更新的行设置为具有todelete=0。然后删除

问题是:


我有一个列表(a、B、C),其中a+B代表一个唯一的键。一些记录需要更新(设置在C上),一些记录是新的,表中不存在唯一的A+B键。最完美的方法是在重复密钥更新时插入
,但是。。。应删除未更新的行(在a列的已考虑值内-所有已考虑更新的a值相同)。问题是最好的方法是什么,最好是最短的查询/存储过程。我找到了解决方法,但我正在寻找一个更特殊的解决方案

我这样做的方式是有一个
todelete
标志。在更新之前,在所有行上将其设置为
1
,然后在更新期间将更新的行设置为具有
todelete=0
。然后删除
todelete
仍然为1的任何行。

这是我也考虑过的解决方案,但坦率地说,它破坏了逻辑,使事情变得多余。也许你会想到一些sql语言机制?