如何确定消息是否包含MYSQL中某列的关键字

如何确定消息是否包含MYSQL中某列的关键字,mysql,Mysql,我是MySQL的新手。我有一个表block_keywords,有两列id和keywords。我想知道消息是否包含block关键字。我尝试使用LIKE,但在这个场景中LIKE不起作用。然后我尝试在集合中查找 前 在表中,关键字*231*717#存在。但它什么也没有返回 我想知道有没有办法做到这一点 请帮我解决这个问题。使用concat等工具 SELECT * FROM block_keywords WHERE CONCAT(id,keywords) LIKE "Yourkeyword%" 使用C

我是MySQL的新手。我有一个表block_keywords,有两列id和keywords。我想知道消息是否包含block关键字。我尝试使用LIKE,但在这个场景中LIKE不起作用。然后我尝试在集合中查找

在表中,关键字*231*717#存在。但它什么也没有返回

我想知道有没有办法做到这一点


请帮我解决这个问题。

使用concat等工具

SELECT * FROM block_keywords WHERE CONCAT(id,keywords) LIKE "Yourkeyword%"

使用
CONCAT
可以搜索单词:

SELECT * FROM block_keywords WHERE 'testing keyword 231' LIKE CONCAT('%', keywords, '%');

其中“keywords”是列名,关键字本身是一个空格分隔的胶合字符串。

如果我在java中通过循环实现相同的结果(意味着迭代整个关键字列表并与消息进行比较)。您能建议哪种方法更快吗?数据库肯定比用Java迭代所有结果快。当然。
SELECT * FROM block_keywords WHERE 'testing keyword 231' LIKE CONCAT('%', keywords, '%');