0

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

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

我正在尝试的查询是

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

但是狮身人面像给了我错误

错误 1064 (42000):sphinxql:语法错误,意外 IDENT,在“comments_count + 3 WHERE id = 1157642”附近需要 CONST_INT(或 4 个其他标记)

我试过这样的查询

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

但狮身人面像仍然会出错,

错误 1064 (42000): sphinxql: 语法错误,意外 IDENT,在 'value(comments_count) + 3 WHERE id = 1157642' 附近需要 CONST_INT(或 4 个其他标记)

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

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

http://sphinxsearch.com/docs/current.html#sphinxql-update中没有太多关于它的信息

4

1 回答 1

1

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

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

于 2015-09-09T11:52:14.997 回答