在一个字段中,将前缀添加到现有值的SQL查询

45

我已经搜索了很久,但我认为对于懂SQL的人来说,这应该是小菜一碟(而我不是)。

我想在我的数据库表格中的字段值前插入一个前缀。

更具体地说,我有一个jos_content表格,在其中有一个字段'title'(其中包含我的joomla网站内容项的标题)。

此字段'title'中的所有值都是个人姓名。现在我只想在所有这个字段的值之前添加一个前缀'Mr.'。

我可以通过在phpMyAdmin中单击编辑铅笔图标并简单地在所有值前添加Mr. 来完成此操作,但我有大约750行,能够插入一个前缀为'Mr.' 的SQL命令将会是很大的帮助。

我已经阅读过关于“UPDATE”命令的内容,但它会用提供的内容替换值。但我想让值保持不变,并在它们之前添加前缀。

请问有谁能帮我用SQL命令实现这个目标吗?

非常感谢。

4个回答

99

如果您没有其他的条件需要在所有行中更新,那么您可以尝试这样做

UPDATE jos_content SET title = CONCAT('Mr. ', title) 

如果您希望有条件地更新某一行,那么您可以使用:

 UPDATE jos_content SET title = CONCAT('Mr. ', title)  where fiedl_name ='condition'

eg: UPDATE jos_content SET title = CONCAT('Mr. ', title)  where id = '1'

这将仅更新包含 id=1 的一行记录。

在进行此操作之前,应备份。


UPDATE installations ins SET ins.meter_msn = CONCAT(ins.meter_msn,'U') WHERE ins.meter_msn IN ('20373121578800', '20373153162100', '20373150840900', '20373150580101', '20373150577700', '20373150577200', '20373311012300', '20373150574901')对我来说它不起作用。 - Moeez
我想在每个数字前面添加 U。这些数字是以字符串格式表示的。 - Moeez
@MrFaisal CONCAT('U ', ins.meter_msn) 在前面添加是正确的。 - Jobin

6

UPDATE jos_content SET title = CONCAT('Mr. ', title) WHERE 1

在测试查询之前,请务必备份数据库。


5
update tablename set title = 'Mr. ' || title where ....

1

只需像这样操作

比如,如果我想在国家代码前添加+符号:

UPDATE [masters].[country] SET Countrycode = '+' +Countrycode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接