我的查询有点进退两难。为了使我的代码达到最佳状态,我想在 PHP 中做尽可能少的逻辑,让 MySQL 处理大部分内容。
所以这就是我所拥有的:我有一个包含 10 个键的数组。每个键都保留了一个新数组的一些值。每个值代表数据库表中的一行。
假设我的数据库表有 6 列。第一个是具有自动增量的主。第 2、3 和 4 列应该是唯一的。第 5 列是一个 TEXT 表示,它不应该是唯一的。第 6 列是 INT(1),即 0 或 1。
现在,当我将数据插入到我的表中时,我使用INSERT INTO mytable (col2, col3, col4, col5, col6) VALUES ('$col2','$col3','$col4','$col5',1) ON DUPLICATE KEY UPDATE col5 = '$col5', col6 = 0;
This 完美无缺,但它并没有完成我所需要的。
当我再次发送相同的数组时,但是对于 key3, col5 行,我将数据更改为其他内容,我只希望 col6 将该键更新为 0;其余的应该保持 1。现在发生的情况是每一行都会得到更新,即使它是用完全相同的数据更新的。
所以,我需要的是,如果 col5 与当前保存的值不同,我只想更新 col6。我怎样才能做到这一点?