我想写一个存储过程/功能来删除所有性别'字符串中的单词。我将所有可能的性别词保留在表格列(gender_aliases.alias)中。一些样本值:
男性
男装
男子39; S
先生们' S
一个字符串的例子可能是男士的黑色T恤',我希望存储过程返回黑色T恤'。重要的是,它必须尊重字边界。即如果输入字符串是'元素'我不想返回Elet'。
我有查询找到所有匹配的性别别名,我相信它很快:
SELECT alias
FROM gender_aliases
WHERE MATCH (alias) AGAINST (myInputString)
但是我在编写单词边界敏感的REPLACE时遇到困难,要从输入字符串中删除所有结果。
谢谢! :)
答案 0 :(得分:0)
这是一个regexp_replace用户定义函数。
尝试使用它,但你需要知道如何在mysql中编写正则表达式
user function fo replacing using regex
更新
另一个方法:
您在字符串
中有性别位置的变化1)genger [空格]文本
2)文本[空格]性别[空格]文本
3)文本[空格]性别
所以你需要在字符串的开头和结尾添加一个空格。
喜欢这个
CONCAT('[space]',text,'[space]')
现在您可以使用以下参数运行replace函数:
[space]gender[space]
例如:
UPDATE table
SET field = REPLACE(CONCAT('[space]',text,'[space]'),'[space]genger[space]','');