我正在使用 MySQL Workbench,我目前正在寻找一个函数或其他东西来帮助我检查一个字符串是否在另一个字符串中。 例如:
text1 = '你好,名字,世界';
如果我有一个像这样的字符串或varchar
'我的名字是'
它应该说它包含,因为它上面有“名称”。
基本上我想做的是我有一个 Comments 表,我在插入 Comments 之前创建一个触发器,检查 comment_text
是否包含任何脏话。这些脏话是这样保存的
select group_concat(word) into texto from reserved_words;
所以它有所有彼此接近的词:swear1、swear2、swear3 等
如果评论确实包含脏话,我希望它更新某个表。
我尝试使用 LIKE, SUBSTR(),CONTAINS(),REGEXP
但没有成功。
有人可以帮忙吗?
最佳答案
LIKE
就是你想要的。您需要用 %
将其包裹起来以匹配字符串中的任何位置。
WHERE string LIKE '%name%'
如果 string
列的值包含字符串 name
,则为真。
如果你在表格的一列中有脏话,你可以加入它们:
SELECT DISTINCT comment
FROM comments AS c
JOIN swear_words AS s ON c.comment LIKE CONCAT('%', s.word, '%')
不要将脏话放入以逗号分隔的列表中,这样很难在 MySQL 中单独使用它们。
关于MySQL字符串包含字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50997016/