mysql-仅当值已更改时,如何插入数据库?

我需要更新(替换)MySQL数据库中的字段,但前提是它们已更改.

该表包含一个ID,文本字段和更改日期.用户根据更改日期按ID查询数据.即,如果日期在用户查询数据的最后一次日期之前,那么他就不需要它.

仅当文本字段与具有相同ID的现有文本字段不同时,我才想更改数据库中的日期.

我可以查询数据,比较结果,并且仅在新数据不同时才回发,但这会产生大量开销,并且数据库连接速度很慢,因此我正在寻找一种方法来通过单个查询执行此操作.

谢谢.

最佳答案
您可以在更新查询中包含CASE语句,该语句将有条件地设置日期字段,如下所示:

UPDATE MyTable
SET textfield = @newValue,datefield = (CASE WHEN textfield <> @newValue THEN NOW() ELSE datefield END);

如果文本字段的值未更改,则此查询将日期字段“设置”为已经包含的相同值.

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
&gt; [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...