gpt4 book ai didi

php - 如何在sql数据库中搜索多个字段和多个值

转载 作者:行者123 更新时间:2023-11-29 22:07:23 25 4
gpt4 key购买 nike

我正在编写一个具有搜索功能的网络应用程序。我正在搜索“ Assets ”列表。

Assets 有名称和描述。它还具有与其关联的标签列表。

我的架构如下所示:

Schema我的输入如下所示:“很多关键词”

我的问题是搜索 Assets 的最佳方式是什么。还要记住,将来很可能会有更多的领域需要搜索。

我的想法如下:

想法1:

按程序创建一个大规模查询,例如:

      select * 
from asset
where id in (
select asset_id
from asset_tag
where tag_id in (
select id
from tags
where name in (
'many', 'key', 'words'
)
)
) or (concat(name, description) like '%many%'
or concat(name, description) like '%key%'
or concat(name, description) like '%words%')

这并不是特别好,因为我可能需要添加更多字段进行搜索,而且我有一种感觉,当数据库开始达到一定大小时,这根本不起作用。

想法2:

创建某种索引系统。我在其中创建另一个名为“asset_index”的表,其中包含两列。 Asset_id 和文本。当 Assets 更新或添加标签时,我会计算 asset_index 上的文本字段,因此它是我想要搜索的所有内容的串联。所以我的 table 看起来像:

asset index

所以我的查询将是这样的:

select * 
from asset
where id in (
select asset_id
from asset_index
where match(text) against('many key words')
-- or text like '%many%' or text like '%key%' or text like '%words%' depending up if I can get the database to support full text searches
)

或者有更好的方法吗?第三方索引服务?

最佳答案

尝试对 mysql 进行此操作,它会返回匹配的值

where text RLIKE '(many)|(key)|(words)'

where text RLIKE '[many]|[key]|[words]'

关于php - 如何在sql数据库中搜索多个字段和多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32021490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com