MySQL 字符串包含字符串

Sid*_*dul 3 mysql sql

我正在使用 MySQL Workbench,我目前正在寻找一个函数或其他东西来帮助我检查一个字符串是否在另一个字符串中。例如:

text1 = 'hello , name , world';

如果我有一个字符串或者varchar是这样的

'My name is'

它应该说它包含,因为它上面有“名称”。基本上我想要做的是我有一个 Comments 表,我在插入之前创建一个触发器来检查是否comment_text包含任何脏话。这些脏话是这样保存的

从reserved_words中选择group_concat(word)到texto中;

所以它的所有单词都很接近:swear1,swear2,swear3,etc

如果评论真的包含脏话,我希望它更新某个表。我尝试使用LIKE, SUBSTR(),CONTAINS(),REGEXP但没有任何成功。

有人可以帮忙吗?

Bar*_*mar 7

LIKE是你想要的。您需要将它包装起来%以匹配字符串中的任何位置。

WHERE string LIKE '%name%'
Run Code Online (Sandbox Code Playgroud)

如果string列的值包含字符串,则为真name

如果你在表格的一列中有脏话,你可以加入它们:

SELECT DISTINCT comment
FROM comments AS c
JOIN swear_words AS s ON c.comment LIKE CONCAT('%', s.word, '%')
Run Code Online (Sandbox Code Playgroud)

不要将脏话放入逗号分隔的列表中,这使得在 MySQL 中单独使用它们变得非常困难。