Sphinx 实现复杂查询

本文介绍了一种使用SPHINX实现复杂查询的方法,通过SQL-like语法结合SPHINX特有的函数,实现了在商品列表页面按特定条件筛选商品的功能。虽然此方法能应对复杂的查询需求,但可能会影响查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

曾经有一天 一个运营提个需求,需要在一个列表页面中按照条件选出商品

条件是用SQL的形式就是

is_on_sale AND ( (price >20 AND cat_id iN(1,2)) OR (price >30 AND cat_id iN(3,4)) )

SPHINX 实现就是

 

$cl->SetSelect("@id, IF((shop_price >4.99 AND iN(cat_id_all,".implode(',', $cat_ids_women).")) OR ( iN(cat_id_all,".implode(',', $cat_ids).")),1,0) as is_summer_show");
$cl->SetFilter('is_summer_show', [1]);

这样就可以实现复杂的一些查询,不过可能效率会低一点。所以建议不要这样实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值