我有一个函数可以转动这个字符串
[games]|[nexis core]|[core]|[lemure lemure]|[chrome tower dlc]
进入这个 where 子句
WHERE
(
main.tags LIKE '%[games]%' OR
main.tags LIKE '%[nexis core]%' OR
main.tags LIKE '%[core]%' OR
main.tags LIKE '%[lemure lemure]%' OR
main.tags LIKE '%[chrome tower dlc]%'
)
在它正在搜索的表中,记录将具有tags
如下字段
[boss]|[lemure lemure]|[astra]|[divine]|[kamidori]|[3rd party]|[razil]|[core]
所以当上面的where子句运行时,它可以搜索tags
字段并且标签的顺序对搜索没有影响
我将每个标签都包含在其中并包含它的原因[]
是LIKE
,如果有人搜索party
他们可能得到的标签,这些标签[3rd party] [party members] [nunnally's battle party] [battle party reality marble]
都是完全不同的东西,[3rd party]
用于描述第三组参与的与不结盟的战斗玩家方或敌方方[battle party reality marble]
用于描述能力
我用 a 分隔每个标签,|
这样当我从数据库中提取字符串并将每个标签输出到页面时,我可以在 PHP 中分解字符串,类似于此处提出问题时的建议标签
现在,虽然我可以限制用户可以在搜索中使用的标签数量,例如本网站如何将问题中使用的标签数量限制为 5 个,但我想尽量避免这种情况,但WHERE
我生成的子句可以OR
由于它的生成方式,在技术上具有无限的 s
OR
我想知道,如果我在查询中使用太多,mysqli 中的准备好的语句会变慢吗