gpt4 book ai didi

Mysql 搜索字符串中的组或特定单词

转载 作者:行者123 更新时间:2023-11-29 06:30:40 26 4
gpt4 key购买 nike

我有产品。客户希望当产品标题为“Lenovo Vibe C2 的玻璃保护器”时,用户搜索“玻璃保护器 c2”来显示该产品。我正在使用类似的条件构建查询,但它正在使用“glass Protector”或“vibe c2”等单词,只能使用连续的单词...

这是查询:

$query = Product::find()->joinWith('translation')->joinWith('cats')->joinWith('cats.page')->joinWith('cats.page.parent')->where($whereString);
$whereString .= " AND (
(
product_cat.page_id = '" . $_GET['product_cat'] . "'
OR
parent.id = '" . $_GET['product_cat'] . "'
)
AND
(
page_title LIKE '%" . $_GET['search'] . "%'
OR
short_description LIKE '%" . $_GET['search'] . "%'
OR
key_words LIKE '%" . $_GET['search'] . "%'
)
)";

产品标题为:“Lenovo Vibe C2 玻璃保护膜”

用户搜索“玻璃保护器”=> 一切正常,产品已显示。

但是当用户搜索“玻璃保护器 C2”=> 没有显示任何内容...数据库中没有此产品。

最佳答案

一种解决方案是创建一个搜索,使用正则表达式将搜索字符串分解为中间带有通配符的各个单词。

SELECT * FROM some_table
WHERE page_title REGEXP CONCAT('.*', REPLACE('Glass protector C2', ' ', '.*'), '.*')

因此,需要对所有 3 列执行此操作,当然,还需要将硬编码搜索字符串替换为问题中使用的变量

关于Mysql 搜索字符串中的组或特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56438361/

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