我需要更新(替换)MySQL 数据库中的字段,但前提是它们已更改。
该表包含 ID、文本字段和更改日期。用户根据更改日期通过 ID 查询数据。即,如果该日期早于用户上次查询数据的时间,则他不想要它。
仅当文本字段与具有相同 ID 的现有文本字段不同时,我才想更改数据库中的日期。
我可以查询数据,比较结果,只有在新数据不同时才回发,但这是很大的开销,而且数据库连接相当慢,所以我正在寻找一种在单个查询中执行此操作的方法。
谢谢。
您可以在更新查询中包含 CASE 语句,该语句将有条件地设置日期字段,如下所示:
UPDATE MyTable
SET textfield = @newValue,
datefield = (CASE WHEN textfield <> @newValue THEN NOW() ELSE datefield END);
该查询“设置”datefield
与它已经包含的值相同,如果textfield
没有被改变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)