0

我在 MySQL 中有一些字符串中的句子。如果这个词不是句子中的第一个,我需要将诸如“我的”之类的子字符串替换为“我的”。我怎么能这样做?

4

3 回答 3

0

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

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

在此处查看小提琴。这将替换所有字符串 My 到 my,除了第一个。

或者也许是这样:

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

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

于 2013-04-29T13:31:58.530 回答
0

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

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

小提琴

因为文本里面的单词前面会有空格。但是如果你想要一个正则表达式替换,这将是一项更困难的任务:

如何计算 MySQL / 正则表达式替换器中的单词?

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

于 2013-04-29T13:29:22.257 回答
0

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

于 2013-04-29T13:03:47.327 回答