SQL中LIKE的另类玩法

设想一个场景,我有个关键词屏蔽词库(应该很多网站都有吧),所有的关键词都存储在MySQL中,怎样查询某个字符串是否含有屏蔽关键词?

比如我们有一个屏蔽词 tom,要屏蔽任何含有tom的词语。

通常情况下LIKE这样用

SELECT * FROM `table` WHERE field LIKE ‘%字符串%’

下面我们这样玩,来解决上面的问题

SELECT * FROM `table` WHERE ‘字符串’ LIKE CONCAT(‘%’,field,’%’)

PS:

这让我想起了初中时数学课中经常用来做几何证明的逆向思考方式。

发表评论

电子邮件地址不会被公开。 必填项已用*标注