SphinxQL比较JSON属性

问题描述 投票:0回答:1

我有一个JSON字符串,看起来像这样:

{"mo":[{"from":800,"to":1100},{"from":1400,"to":1700}],"di":[{"from":800,"to":1100},{"from":1400,"to":1700}],"do":[{"from":800,"to":1100},{"from":1400,"to":1700}],"mi":[{"from":800,"to":1100}],"fr":[{"from":800,"to":1300}],"so":[],"sa":[]}

包含此JSON字符串MySQL的字段声明为在配置qazxsw POI。

下面sql_attr_json条件正常工作:

WHERE

但是,下列情况不:

WHERE json.mo[0].from < 1100

其结果是:

WHERE json.mo[0].from < json.mo[0].to

这是为什么?我想实现的开放时间,但不幸的是,我有一个很艰难的时间做这样的检查,我尝试了不同的方法一打似乎没有任何工作。

更新:

我也试图做的:

sphinxql: syntax error, unexpected IDENT near 'json.mo[0].to

导致

WHERE (DATE_FORMAT(NOW(),'%H%i') between json.mo[0].from and json.mo[0].to) 

即使是基本

sphinxql: syntax error, unexpected '(' near '(NOW(),'%H%i')) between json.mo[0].from and json.mo[0].to)

结果到了同样的错误

SELECT DATE_FORMAT(NOW(),'%H%i') < 1050

作为一种变通方法我也试过

 Sphinx expr: syntax error, unexpected '(', expecting $end near '(NOW(),'%H%i') < 1050'

但导致

SELECT CONCAT(HOUR(NOW()), MINUTE(NOW())) currentTime;

在MySQL中它工作得很好

sphinx
1个回答
0
投票

只是还没有实现。请尝试以下解决方法:

sphinxql: syntax error, unexpected $end, expecting FROM or ',' near 'currentTime'

对我来说工作正常曼提搜索(狮身人面像的叉),应在狮身人面像工作也没关系。

© www.soinside.com 2019 - 2024. All rights reserved.