替换MySQL中的子串

时间:2013-04-29 13:02:26

标签: mysql database

我在MySQL中有一些字符串的句子。如果这句话不在句子中,我需要将“我的”等子串替换为“我的”。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

CHAR,REPLACE,REPEAT等。我建议阅读mySQL参考:http://dev.mysql.com/doc/refman/5.5/en/string-functions.html

答案 1 :(得分:0)

如果您只想替换多个单词,可以使用以下方法替换它们:

UPDATE str_test SET str = REPLACE(str, ' My', ' my')

fiddle

由于文本中的单词前面会有空格。但是如果你想要一个regexp替换,那将是一项更艰巨的任务:

How to count words in MySQL / regular expression replacer?

https://dba.stackexchange.com/questions/15250/how-to-do-a-case-sensitive-search-in-where-clause

答案 2 :(得分:0)

对字符串的MySql支持非常有限。一个快速的解决方案是使用这样的东西:

SELECT
  CONCAT(
    LEFT(col, 1),
    REPLACE(SUBSTRING(col, 2), 'My', 'my')
  )

请参阅小提琴here。这将取代所有字符串My to my,除了第一个。

或许这个:

SELECT
  col,
  RTRIM(REPLACE(CONCAT(col, ' '), ' My ', ' my '))
FROM
  yourtable

将替换除第一个之外的所有整个单词。