MySQL查询将字段前缀连接到字段中的现有值

时间:2018-01-27 13:26:14

标签: mysql concat

我的表格结构如下,

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值而失败:

任何建议都会被大大贬低。

4 个答案:

答案 0 :(得分: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 |

答案 1 :(得分:0)

结帐

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

或只是

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

答案 2 :(得分:0)

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

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

其中$ table是存储表

的关联数组的变量


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

答案 3 :(得分:0)

请尝试以下代码:

UPDATE table_Name SET Source = concat(concat(&#39; http://example.com/&#39;,ID),&#39; /&#39;),来源);