0

我有一个前端 PHP 应用程序,它将数据保存在 MySQL 数据库中。该updated_by值将发生变化,因为它将是正在更新记录的用户。仅当我们为任何其他列 ( , ) 插入新值并且插入或更新记录时
,我才想更新该列。updated_bysnamescol2
欢迎任何帮助,非常感谢:)


表信息:

  • test
  • 唯一索引:snamescol2
  • 列: sname , scol2, updated_at,updated_by
  • 值: name1、col2、03-02-2013、phpuser1


MySQL 5.6 信息:
INSERT INTO.. ON DUPLICATE KEY UPDATE
“..如果将行作为新行插入,则返回 1,如果更新现有行,则返回 2...”


示例:用户将更新或插入记录:

INSERT INTO test(sname) VALUES("name1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col2";
结果: 上面的查询不会更新任何东西。完美的。

INSERT INTO test(sname) VALUES("name1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col22";
结果:上述查询将更新列:scol2updated_at.Perfect。


如何在一个查询中自动更新 updated_by 列?

INSERT INTO test(sname) VALUES("test1") ON DUPLICATE KEY UPDATE sname="name1", scol2="col2", updated_by="phpuser2222";
这不起作用,它会在每次列updated_by可能的解决方案时更新两个查询:updated_at


  1. 插入记录:INSERT ... ON DUPLICATE KEY UPDATE...
  2. 在我的 PHP 应用程序中获取返回值以了解它是否已[更新或插入],然后updated_by使用第二个查询更新该字段:INSERT INTO test(updated_by) VALUES("phpuser2222");
4

0 回答 0