gpt4 book ai didi

php - Mysql 选择组合表/字段

转载 作者:行者123 更新时间:2023-11-29 02:36:24 25 4
gpt4 key购买 nike

数据库中有2个表

BRAND
- id
- name

PRODUCT
- id
- brand_id
- name

网站用户将仅使用一个文本字段搜索产品。

示例 1:“sony dvd player”,其中“sony”在 BRAND 表中,“dvd player”在 PRODUCT 表中。

示例 2:“car audio pioneer deh-1234”,在这种情况下,“car audio deh-1234”属于 PRODUCT,pioneer 属于 BRAND。

有没有什么办法可以写一个唯一的SQL查询来搜索结果?

像这样:

SELECT
B.name,P.name
FROM
brand B,product P
WHERE
B.id=P.brand_id
AND (P.nombre LIKE '%{$textfield}%' OR B.name LIKE '%{textfield}%')

感谢您的帮助。 :)

编辑:上面的 SQL 不适用于组合的品牌/产品,但适用于产品或品牌。我编辑了用于 $textfield 的变量名,因为它来自一个文本输入。

最佳答案

它不起作用的原因是字符串中同时包含品牌和产品信息。因此,如果您搜索“sony dvd player”,查询将在两个表中搜索 "%sony dvd player%"。但可能没有这样的条目(既不在 brand 中也不在 product 中)。

您应该拆分搜索字符串并“分别”搜索各个部分。例如:

P.name LIKE '%sony%' OR p.name LIKE '%dvd%' OR p.name LIKE '%player%' OR b.name LIKE ...

表达式必须动态生成。然后,您可以按某个“概率”值对结果进行排序,以使匹配度更高的行排在第一位。

关于php - Mysql 选择组合表/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432028/

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