1

我只是好奇更新mysql表记录(与php有关)如下。

  1. 更新一个值。例如:在 mysql 表中,它的值为“100”。用户希望将“50”添加到该值。使用 php 代码将“50”传递给 mysql 表,并将“50”添加到“100”并更新为“150”。

  2. 将数据附加到现有值。例如:mysql 表字段“联系人”(0123456789)中已经有一个数字,新数字应该附加到同一字段并使用逗号或其他东西分隔(0123456789、9876543210)。不使用字段contact1、contact2等。

我问这个通常我们从表中检索所有数据并进行所有数学运算,毕竟我们覆盖和更新表。dbms 中有没有办法管理这种情况?

4

4 回答 4

1

1 你可以使用

set col =col + 50

对于两个你可以使用

set contact = case when contact is null then '12345' else concat(contact, ',  12345') end

但是在数据库中使用 csv 在某些情况下只是一件好事。我认为这不是其中之一。我会使用一个单独的表的一对多关系。考虑以下。

  1. 删除一个联系人号码意味着解析字符串并创建一个新值。
  2. 找到一定数量的人
  3. 按编号订购
于 2012-12-05T06:28:53.293 回答
1

对于您提出的第一个问题:

UPDATE tablename SET column_with_ints = column_with_ints + 50;

对于第二个答案,您可以以相同的方式在 MySQL 中连接字符串。

UPDATE tablename SET column_with_string = CONCATE(column_with_stringA, column_with_stringB);
于 2012-12-05T06:30:26.553 回答
1

更新时,您可以引用当前字段值。

例如

查询 1。

UPDATE table SET col1 = col1+50 WHERE condition;

查询 2。

UPDATE table SET col1 = CONCAT( col1, ', 9876543210' );
于 2012-12-05T06:32:44.893 回答
0
  1. 更新 myTable 设置 MyValue=MyValue+50 其中 myId=x
  2. 更新 myTable 设置 MyValue=CONCAT(MyValue,',9876543210') 其中 myId=x
于 2012-12-05T06:30:48.583 回答