gpt4 book ai didi

php - SQL - 过滤搜索结果

转载 作者:行者123 更新时间:2023-11-29 00:43:13 25 4
gpt4 key购买 nike

好吧——这里需要一些帮助——可能我在这里咬的太多了——但我想写一个总是返回至少 10 个结果的 SQL 查询。如果应用第一个条件并且结果集超过 10 个结果,则继续下一个条件等。

例子找到所有价格低于 £5.00 的红色小塑料玩具车。

我总是想在屏幕上显示至少 10 个项目。想要搜索“small”,然后搜索“red”,然后搜索“< £5.00”。如果查询返回超过 10 个项目,则继续过滤尽可能多的标签(即塑料、玩具和汽车)——匹配的越多,它的排名就应该越高(即,如果一个产品的所有 3 个标签都与它 – 它将位于列表的顶部,如果产品仅匹配 1 个标签 – 那么它将位于列表的下方。

Price Table
ID Price
1 £1.50
2 £2.50
3 £6.00
.
Colour Table
ID Colour
1 Red
2 Blue
3 Yellow
.
Size Table
ID Shape
1 Small
2 Medium
3 Large
.
Products Table
ID Description price_id colour_id size_id
1 Item 1 1 2 2
2 Item 2 2 2 1
3 Item 3 1 1 1
4 Item 4 3 2 3
5 Item 5 3 1 2
6 Item 6 1 1 2
7 Item 7 1 1 3

.
Tags Table
ID Description
1 Shiny
2 Plastic
3 Wood
4 Toy
5 Disney
6 Animal
7 Car
.
Items_Tags Table
ID tag_id product_id
1 1 1
2 4 1
3 7 1
4 2 2
5 3 3
6 4 3
7 7 6
8 7 7
9 7 2

这是一个很长的例子 - 但我希望你能明白我的意思。我想知道将所有过滤器放在标签表中是否有任何好处 - 即价格、颜色和尺寸,然后只需要针对标签表进行搜索。

有什么想法吗?

谢谢

最佳答案

这取决于你的用法:过滤整数比字符串快(顺便说一下,它们是否有索引?)但 JOIN 也很耗时。因此,如果 sql 外部的代码与整数一起使用,请保留它们(如果不需要显示文本,则不要加入)

关于php - SQL - 过滤搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330765/

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