我需要在项目中使用OR条件创建一个sphinx查询。但是给出像
这样的OR条件import re
new_order_finder3 = re.compile("(?:^|\x01)(11|15|35|38|54|55)=(.*?)(?=\x01)")
if __name__ == "__main__":
line = "20150702-05:36:08.687 : 8=FIX.4.2\x019=209\x0135=D\x0134=739\x01"\
"49=PINE\x0152=20150702-05:36:08.687\x0156=CSUS\x011=KI\x01" \
"11=N09080243\x0115=USD\x0121=2\x0122=5\x0138=2100\x0140=2\x01" \
"44=126\x0148=AAPL.O\x0154=1\x0155=AAPL.O\x0157=DMA\x0158=TEXT\x01" \
"60=20150702-05:36:08.687\x01115=Tester\x016061=9\x0110=087\x01"
fields3 = dict(re.findall(new_order_finder3, line))
print(fields3)
无效。它返回一个错误,如
select cost FROM transactionsChart WHERE cost=25 OR cost=5;
任何人都可以帮助我....
提前致谢
答案 0 :(得分:8)
Sphinx不支持WHERE子句中的OR
,仅 AND
。
对于您的具体示例,可以使用IN
语法
sphinxql> SELECT cost FROM transactionsChart WHERE cost IN (5,25);
或更通用的解决方案是使用虚拟属性
sphinxql> SELECT cost, IF(cost=25 OR cost=5,1,0) AS filter
FROM transactionsChart WHERE filter = 1;
答案 1 :(得分:-2)