【问题标题】:MySQL query to concat prefix to existing value in a fieldMySQL查询将前缀连接到字段中的现有值
【发布时间】:2018-07-06 16:09:40
【问题描述】:

我的表结构如下,

ID  Name    Source
1   John    first.jpg
2   Doe second.jpg
3   Mary    third.jpg
4   Kurian  four.jpg

我想通过添加主机和主键来更新“源”,如下所示

http://example.com/1/first.jpg
http://example.com/2/second.jpg
http://example.com/3/third.jpg
http://example.com/4/four.jpg

尝试使用 CONCAT("http://example.com/"+id,Source) 但因截断不正确的 DOUBLE 值而失败:

任何建议都将不胜感激。

【问题讨论】:

    标签: mysql concat


    【解决方案1】:

    试试

    UPDATE table_name 
    SET Source = CONCAT('http://example.com/', ID, '/', Source);
    

    结果

    | ID |   Name |          Source                 |
    |----|--------|---------------------------------|
    |  1 |   john |  http://example.com/1/first.jpg |
    |  2 |    Doe | http://example.com/2/second.jpg |
    |  3 |   Mary |  http://example.com/3/third.jpg |
    |  4 | Kurian | http://example.com/4/fourth.jpg |
    

    【讨论】:

    • @Steve 是的,它会工作,CONCAT 函数会将数字 ID 转换为字符串,然后将其与此函数中传递的其他参数连接起来。
    【解决方案2】:

    看看这个

     SELECT CONCAT("http://example.com/" , CONCAT(ID , CONCAT("/" , Source))) FROM table_name;
    

    或者干脆

     SELECT CONCAT("http://example.com/" ,ID , "/" , Source) FROM table_name;
    

    【讨论】:

      【解决方案3】:

      您可以在 sql 中进行迭代,但最简单的方法是创建一个 php 脚本,在该脚本中创建一个包含表行的数组 然后使用点 si tax 将 ID 与域名和来源连接起来,例如:

      $newval = ‘{$table[“ID”]}’ .“/Domainname.com/” . ’{$table[“Source”]}’;
      

      其中$table是一个存储表格关联数组的变量


      然后进行一个新查询,在其中覆盖表数组中每一行的源列

      【讨论】:

        【解决方案4】:

        请尝试以下代码:

        更新表名 SET Source = concat(concat(CONCAT('http://example.com/',ID),'/'),source);

        【讨论】:

          猜你喜欢
          • 2012-11-01
          • 2016-07-03
          • 1970-01-01
          • 2019-10-25
          • 1970-01-01
          • 1970-01-01
          • 2018-12-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多