繁体   English   中英

更新mysql表记录

[英]Update mysql table record

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

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

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

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

为1你可以使用

set col =col + 50

你可以用两个

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

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

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

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

UPDATE tablename SET column_with_ints = column_with_ints + 50;

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

UPDATE tablename SET column_with_string = CONCATE(column_with_stringA, column_with_stringB);

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

例如

查询1。

UPDATE table SET col1 = col1+50 WHERE condition;

查询2。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM