【问题标题】:Mysql search and replace second patternsMysql查找替换第二种模式
【发布时间】:2014-09-12 21:38:41
【问题描述】:

什么 Mysql 查询会在表中的一个特定字段中进行文本搜索和替换?

例如。在表格的一个字段中,我有文字:

"abc def XXX ghi XXX jkl"

如何只替换第二个XXX???

预期输出:

"abc def XXX ghi YYY jkl"

感谢您的帮助!

【问题讨论】:

  • 所以你总是有这种模式的字符串,即两个 XXX 或者你可以只有一个 XXX 的字符串?
  • 您只想替换第二个 XXX 或所有 XXX 中最后一个 XXX 吗?

标签: mysql sql replace


【解决方案1】:

可能是这样的

你会想像这样使用SUBSTRING_INDEX函数

SELECT CONCAT(SUBSTRING_INDEX(YourField, SearchString, 2),ReplacementString,SUBSTRING_INDEX(YourField,SearchString,-1));

Fiddle Demo

SELECT CONCAT(SUBSTRING_INDEX('abc def XXX ghi XXX jkl', 'XXX', 2),'YYY',SUBSTRING_INDEX('abc def XXX ghi XXX jkl', 'XXX', -1));

编辑

您的更新查询将是

UPDATE Table_Name SET Column_Name = CONCAT(SUBSTRING_INDEX(Column_Name,'XXX',2) ,'YYY', SUBSTRING_INDEX(Column_Name, 'XXX', -1));

【讨论】:

  • 在我使用这样的函数之前:UPDATE table_name set column_name = replace(column_name, 'XXX', 'YYY');我应该如何使用你的功能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 2013-06-25
  • 2014-09-30
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多