使用同一行数据时的MySql Update

时间:2014-01-25 08:04:39

标签: php mysql

我需要使用php更新列c,但是在更新语句中使用相同的行数据时我错了吗?

就是这样,因为用户可以更新他的firstsecond名称而我无法收费。

这样做会导致任何问题吗?这会因任何原因失败吗? c会在任何时间之前先得到更新吗?

"update names set a = 'Jim', c = concat(a,' ',b);

首先更新a,然后使用a更新c。这样安全吗?

 "id"   "a"     "b"     "c"
 "1"    "Jim"   "Doe"   "Jim Doe"

1 个答案:

答案 0 :(得分:0)

是的,这很安全。正如UPDATE Syntax所述:

  

以下语句中的第二个赋值将col2设置为当前(更新的)col1值,而不是原始col1值。结果是col1col2具有相同的值。此行为与标准SQL不同。

UPDATE t1 SET col1 = col1 + 1, col2 = col1;