【问题标题】:How to update Sphinx Realtime Index with field = old_value + new_value?如何使用字段 = old_value + new_value 更新 Sphinx 实时索引?
【发布时间】:2015-09-09 19:52:14
【问题描述】:

我正在尝试 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 

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

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

我试过这样的查询

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

但狮身人面像仍然报错,

ERROR 1064 (42000): sphinxql: 语法错误,意外 IDENT, 在 'value(cmets_count) + 3 哪里 id = 1157642'

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

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

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

【问题讨论】:

    标签: mysql sphinx sphinxql


    【解决方案1】:

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

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

    【讨论】:

    • 哎呀,每条记录还有 1 个查询。无论如何感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2015-08-26
    • 2015-11-02
    相关资源
    最近更新 更多