如何使用field = old_value + new_value更新Sphinx实时索引?

时间:2015-09-09 10:42:36

标签: mysql sphinx sphinxql

我正在尝试update the Sphinx Search Realtime Index,使用我的Mysql Table中的值。 我想像这样记录RT索引的add the new value in the old value, 我想实现这个

UPDATE RT_index SET col1 = old_val + new_val WHERE id = xx ;

我正在尝试的查询是

UPDATE RT_index SET comments_count = comments_count + 3 WHERE id = 1157642 

但是斯芬克斯给我的错误

  

ERROR 1064(42000):sphinxql:语法错误,意外IDENT,   期待'comments_count + 3 WHERE附近的CONST_INT(或其他4个令牌)   id = 1157642'

我尝试了像这样的查询

 UPDATE RT_index SET comments_count = value(comments_count) + 3 WHERE id = 1157642;

但仍然sphinx会出错,

  

ERROR 1064(42000):sphinxql:语法错误,意外IDENT,   期待'value(comment_count)+附近的CONST_INT(或其他4个令牌)   3 WHERE id = 1157642'

如何使用sphinx实时索引中的更新在旧值中添加新值?

我正在使用PHP来执行此操作。

http://sphinxsearch.com/docs/current.html#sphinxql-update

中的信息不多

1 个答案:

答案 0 :(得分:1)

你做不到。需要首先运行SELECT查询以获取当前值,然后运行UPDATE。

不确定是否可以使用事务来使更新成为原子。