Mysql将替换部分通配符文本

Mysql将替换部分通配符文本,mysql,Mysql,我在不同的表格字段中有两种不同语言的文本。使用[]分隔语言。所以它是这样的: 你好,你好 我正在迁移到一个新的CMS,它不能读取这两种语言,所以我需要删除数据库中的所有法语内容。是否有一个MySQL查询可以让我这样做 我已经找到了很多关于更新表以查找和替换固定值的答案,但是当值是动态的,但总是夹在固定值[fr]*[/fr]之间时,我找不到如何进行更新 使事情复杂化的是,细胞内的语言并不一致,有时是法语,有时是英语 非常感谢您的帮助 除非您使用的是MariaDB 10,它有一个函数,否则您可以尝试

我在不同的表格字段中有两种不同语言的文本。使用[]分隔语言。所以它是这样的:

你好,你好

我正在迁移到一个新的CMS,它不能读取这两种语言,所以我需要删除数据库中的所有法语内容。是否有一个MySQL查询可以让我这样做

我已经找到了很多关于更新表以查找和替换固定值的答案,但是当值是动态的,但总是夹在固定值[fr]*[/fr]之间时,我找不到如何进行更新

使事情复杂化的是,细胞内的语言并不一致,有时是法语,有时是英语


非常感谢您的帮助

除非您使用的是MariaDB 10,它有一个函数,否则您可以尝试使用LIKE、RLIKE和/或SUBSTRING\u INDEX来修改某些内容


也许可以尝试以下方法:更新语言集lang=replacelang,“[fr]bonjour[/fr]”,

如果您使用的是MariaDB 10,则可以使用。标准mysql正则表达式只能匹配。它们无法取代,也无法捕获。因此,您必须使用纯字符串操作,这意味着您几乎可以肯定最好将字符串转换为客户端代码(例如php)并在那里进行拆分。非常感谢!这将完美地返回新数据。但是我如何从单元格中删除%[fr]%[/fr]%内容呢?您可以将其更改为更新查询。UPDATE table SET data=SUBSTRING_INDEXdata,“[fr]”,其中数据“%[fr]%[/fr]]”;。
SELECT SUBSTRING_INDEX(data, '[fr]', 1) as new_data
FROM table
WHERE data LIKE '%[fr]%[/fr]%';