10

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

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

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

4

5 回答 5

13

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

update TableName set ColumnName  = 'www.mypizza.com/' + ColumnName  
于 2013-09-29T18:37:04.063 回答
9

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

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

SQLFiddle

如果您使用的是 oracle,则可以使用连接运算符 '||' 作为 :

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

SQLFiddle

在 SQL Server 中,您可以将+字符串连接用作:

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

SQLFiddle

于 2013-09-29T18:45:35.487 回答
1

你的意思是这样吗?:

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

根据您的应用程序环境的其余部分,可能有更好的方法来完成此操作。但就仅使用 SQL 将静态文本添加到 SELECT 语句中的列而言,您可以直接在语句中连接文本。

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

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

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

于 2013-09-29T18:35:39.370 回答
1

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

<?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";
于 2013-09-29T18:52:30.990 回答
1

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

UPDATE my_table 
SET column_1  = 'start_text_' || column_1
WHERE column_1 LIKE 'prefix_%'
; 
于 2019-10-08T16:11:17.040 回答