更新mysql表记录

时间:2012-12-05 06:20:18

标签: php mysql

我只是对如何更新mysql表记录(与php相关)感到好奇。

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

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

  3. 我问这通常我们从表中检索所有数据并执行所有数学运算,然后我们覆盖并更新表。在dbms中有办法管理这种情况吗?

4 个答案:

答案 0 :(得分:1)

1你可以使用

set col =col + 50

两个你可以使用

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

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

  1. 删除一个联系号码意味着解析字符串并创建新值。
  2. 找到一定数量的人
  3. 按编号排序

答案 1 :(得分: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);

答案 2 :(得分:1)

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

e.g。

查询1。

UPDATE table SET col1 = col1+50 WHERE condition;

查询2。

UPDATE table SET col1 = CONCAT( col1, ', 9876543210' );

答案 3 :(得分:0)

  1. 更新myTable设置MyValue = MyValue + 50,其中myId = x
  2. 更新myTable设置MyValue = CONCAT(MyValue,',9876543210'),其中myId = x