繁体   English   中英

使用正则表达式将字符串转换为mysql查询

[英]convert string to mysql query using regex

我错误地更新了MySQL数据库中的一列,并将每一行设置为相同的值,如下所示:

ID  keyword                 Default_value   
1   header_HOME             EXCURSIONS
2   footer_APARTMENTS      EXCURSIONS
3   index_Excursions       EXCURSIONS
4   header_Sea_Excursions   EXCURSIONS
5   home_Desert_Safari      EXCURSIONS
6   header_Sight_Seeing     EXCURSIONS
7   apartment_Shore_excursions  EXCURSIONS
8   header_Plan_excursions  EXCURSIONS
9   header_Others           EXCURSIONS
10  header_Hotels           EXCURSIONS

像那样

 ID  keyword                 Default_value   
    1   header_HOME             HOME
    2   footer_APARTMENTS      APARTMENTS
    3   index_Excursions       Excursions
    4   header_Sea_Excursions   Sea Excursions
    5   home_Desert_Safari      Desert Safari
    6   header_Sight_Seeing     Sight Seeing
    7   apartment_Shore_excursions  Shore_excursions
    8   header_Plan_excursions  Plan_excursions
    9   header_Others           Others
    10  header_Hotels           Hotels 

现在,我需要更新Default_value列以匹配此模式:

  1. keyword列中的单词keyword
  2. 去除header_前缀。
  3. 用空格替换下划线_
  4. 最后附加Excursions

结果将等同于对每一行运行如下命令:

UPDATE `my_table` SET `Default_value` = 'Desert_Safari' WHERE `id` = 5

我认为这将满足您的要求:

update table t
    set default_value = concat(replace(substring(keyword, 8), '_', ' '), ' Excursions')

我认为使用基本字符串函数比使用正则表达式更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM