gpt4 book ai didi

mysql - 如何实现关键词搜索?

转载 作者:行者123 更新时间:2023-11-30 01:37:28 25 4
gpt4 key购买 nike

我有一个项目数据库,我希望能够使用预定义的关键字进行搜索。

我现在拥有的是这样的三个表:

项目_tbl:

item_idx, item (UNIQUE), description, etc.

关键字_tbl:

kw_idx, kw (UNIQUE), kw_description

Cross_tbl:

item_idx, kw_idx.

我想做“和”搜索...就像...给我(明确)每一个具有关键字“海蓝 gem ”、“蓝色”和“绿色”的项目。即“海蓝 gem ”和“蓝色”和“绿色”...

搜索“或”搜索非常简单,但我很难做这样的“和”搜索......在这个例子中。我想查找同时具有“蓝色”和“绿色”的项目,但不查找仅具有“绿色”的项目。

最佳答案

SELECT   Items_tbl.*
FROM Items_tbl
JOIN Cross_tbl USING (item_idx)
JOIN Keyword_tbl USING (kw_idx)
WHERE kw_description IN ('aquamarine','blue','green')
GROUP BY item_idx
HAVING COUNT(*) = 3

这假设关键字最多只能与商品关联一次(即 Cross_tbl 中对 (item_idx, kw_idx)UNIQUE 约束>);如果情况并非如此,则必须将 COUNT(*) 替换为效率较低的 COUNT(DISTINCT kw_idx),或者效率更低的 COUNT( DISTINCT kw_description) 如果相同的关键字可以在 Keyword_tbl 中出现多次(即 kw_description 列上没有 UNIQUE 约束)。

关于mysql - 如何实现关键词搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669569/

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