【问题标题】:How can I add text to SQL Column如何将文本添加到 SQL 列
【发布时间】:2026-01-20 12:25:02
【问题描述】:

我想更新 SQL 表中的 1 列。示例:列中的当前值是这样的

2013/09/pizzalover.jpg 
2013/10/pasta.jpg       

现在我想像这样更新整个专栏:www.mypizza.com/2013/09/pizzalover.jpg 有什么办法可以做到这一点吗?提前致谢

【问题讨论】:

  • SQL 只是 结构化查询语言 - 许多数据库系统使用的语言,但不是数据库产品...许多事情是特定于供应商的 - 所以我们真的需要知道您正在使用什么数据库系统(以及哪个版本)(请相应地更新标签)......
  • 更新 设置 = 'www.mypizza.com/' + ?
  • 您使用的是哪个 DBMS?
  • 这对我很有用 update oc_product set sku= CONCAT('BBC', sku);但是我怎样才能使它只在列中没有出现文本 BBC 时才添加到列中,以用于在初始 SQL 运行之后添加的任何内容。因为每天都会在 auto 上添加新的,我无法更改它们的添加方式。提前感谢任何可以提供帮助的人。所以这是我添加到每个产品的 sku 的最佳选择。

标签: sql sql-update


【解决方案1】:

您可以使用语句简单地更新列

update TableName set ColumnName  = 'www.mypizza.com/' + ColumnName  

【讨论】:

  • 小心使用“+”,您的数据库实例可能会将以下字符串解释为数字并截断整个内容。如果您的数据库支持,请改用 concat
【解决方案2】:

如果你使用的是MYSql,你可以使用concat() as :

update tableName set columnName= CONCAT('www.mypizza.com/', columnName);

SQLFiddle

如果您使用的是 oracle,则可以将concatenation operator '||' 用作:

update tableName set "columnName"='www.mypizza.com/'||"columnName";

SQLFiddle

在 SQL Server 中,您可以将+ for string concatenation 用作:

update tableName set name='www.mypizza.com/'+columnName;

SQLFiddle

【讨论】:

    【解决方案3】:

    OP 没有指定他们使用的 DBMS。以下是 Postgres 通过添加前缀来更新文本列(使用 PostgreSQL v11 测试):

    UPDATE my_table 
    SET column_1  = 'start_text_' || column_1
    WHERE column_1 LIKE 'prefix_%'
    ; 
    

    【讨论】:

      【解决方案4】:

      你的意思是这样的?:

      SELECT 'www.mypizza.com/' + ColumnName AS ColumnName FROM TableName
      

      根据您的应用程序环境的其余部分,可能有一种非常更好的方法来完成此任务。但是对于只使用 SQL 将静态文本添加到 SELECT 语句中的列而言,您可以直接在语句中连接文本。

      或者,如果您想更新列值,如下所示:

      UPDATE TableName SET ColumnName = 'www.mypizza.com/' + ColumnName
      

      原理相同,只是使用UPDATE而不是SELECT,这样会修改底层数据,而不仅仅是修改数据的视图。

      【讨论】:

      • 那是非标准的 SQL。标准 SQL 中的连接运算符是 || 而不是 ++ 用于加数)
      【解决方案5】:

      首先获取存储在数据库中的信息,然后对其进行编辑,您可以这样做:

      <?php 
      $query = "SELECT * FROM  `blog-posts`  WHERE `id` = 11";
      $result = mysql_query($query);
      $post = mysql_fetch_array($result);
      $title = $post['title'];
      $title .= "aapje";
      echo $title
      ?>
      

      然后像往常一样更新您的数据库:

      $updateq = "UPDATE `blog-posts`  SET `title` = '$title' WHERE `id` = 11";
      

      【讨论】: