MySQL字符串包含字符串

标签 mysql sql

我正在使用 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/

相关文章:

php - 为什么我不能连接到我的sql数据库?我收到错误消息 : "Can' t connect to local MySQL server through socket"

sql - 如何 "deepcopy"行

php - 尝试让 PHP MYSQL 查询忽略 WHERE 子句中的空变量

mysql 数据库分区对极端不平衡数据?

php - MySQL:如何检查是否列出了用户

sql - 避免在 SQL-Server 中自动创建 XML 标签

mysql - sql- 查询以查看 URL 的所有主机名及其计数

mysql - 在第一个表中插入数据后,如何将数据从一个表插入到另一个表中?

mysql - 查询 phpMyAdmin 以仅显示具有特定值的行

php - Mysql查询日期格式、phpmailer