我如何在sphinx select * from vehicle_details where make LIKE "%john%" OR id IN (1,2,3,4)
上撰写此查询,有人可以帮助我吗?我搜索了很多,但我找不到答案。请帮忙
答案 0 :(得分:1)
如果你真的想使用sphinx,可能会将id变成一个假关键字,所以可以在MATCH中使用它,例如
sql_query = SELECT id, CONCAT('id',id) as _id, make, description FROM ...
现在,您可以使用基于id
的关键字进行匹配。
SELECT * FROM index WHERE MATCH('(@make *john*) | (@_id id1|id2|id3|id4)')
但请仔细阅读sphinx关键字匹配,因为sphinx默认只匹配整个单词,你需要启用与通配符的部分单词匹配(例如使用min_infix_len),这样你就可以关闭到一个简单的LIKE%..%匹配(不考虑单词)
答案 1 :(得分:0)
实际上很难做到,因为你将字符串搜索(Open
将是LIKE
)与属性过滤器混合在一起。
建议两个单独的查询,一个用于文本过滤器的sphinx。 IN过滤器直接在数据库中做(mysql?)。合并应用程序中的结果。