【问题标题】:SQL query to prepend prefix to existing value in a fieldSQL 查询将前缀添加到字段中的现有值
【发布时间】:2012-11-01 18:35:15
【问题描述】:

我已经搜索并搜索了这个问题的答案,我认为这对于任何了解 SQL 的人(不是我)来说都是小菜一碟。

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

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

此字段“标题”中的所有值都是个人姓名。现在我要做的就是添加一个前缀“先生”。到该字段的所有值。

我可以从 phpmyadmin 执行此操作,方法是单击编辑铅笔图标并在所有值前面简单地添加 Mr. 但我有大约 750 行和一个可以插入前缀“先生”的 SQL 命令前面这个字段的所有值都会有很大的帮助。

我已阅读有关“更新”命令的信息,但是用您提供的内容替换了该值。但我想让这些值保留并在它们之前添加一个前缀。

请谁能帮我用 SQL 命令实现这一点?

非常感谢。

【问题讨论】:

    标签: mysql sql joomla phpmyadmin


    【解决方案1】:

    您没有其他条件,例如在所有行中更新此内容,然后您可以尝试

    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', '20373153162108', '907804', '20373153162104' ', '20373150580101', '20373150577700', '20373150577200', '20373311012300', '20373150574901') 这对我不起作用
    • 我想在每个号码前加上U。数字是字符串格式
    • @MrFaisal CONCAT('U ', ins.meter_msn) 适合添加在前面。
    【解决方案2】:
    update tablename set title = 'Mr. ' || title where ....
    

    【讨论】:

      【解决方案3】:

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

      在测试查询之前做一个数据库备份。

      【讨论】:

        【解决方案4】:

        就这样吧

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

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

        【讨论】:

          猜你喜欢
          • 2018-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-22
          • 1970-01-01
          • 1970-01-01
          • 2016-07-03
          相关资源
          最近更新 更多