php—在mysql中存储多个值以满足别有用心的“like%”请求的最佳方法?

brc7rcf0  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(532)

我正在运行一个分类广告网站,我想建立一个功能,将发送电子邮件警报时,一个新的广告匹配一些模式。
其思想是允许用户存储多个模式,然后对它们执行选择:

select ad from table where (content LIKE '%this%' OR content LIKE '%that%')

当然,我不知道用户需要多少模式。
一种解决方案是为每个用户和每个模式创建一行,并通过连接表进行选择,但我担心数据库性能。
我考虑过json数据,但我不知道如何做到这一点:

select ad from table where content like (["this","that"])

或者有更好的方法?
编辑
看了第一个答案(谢谢),我意识到我还不够清楚。
模式也将存储在数据库中,最后的请求应该是:

select ad from table where content LIKE (select *something* from pattern_table where userId = 123)

问题主要是:在pattern表中存储模式的最佳方式是什么

cgvd09ve

cgvd09ve1#

一次尝试

select ad from table where content REGEXP 'this|that'

相关问题