2015-09-09 34 views
0

我想update the Sphinx Search Realtime Index,利用我的MySQL表的價值, 我希望將RT指數的紀錄是這樣, 的add the new value in the old value我想要實現這個如何使用field = old_value + new_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 

但獅身人面像給我errror

ERROR 1064(42000):sphinxql:語法ERR或者,意想不到IDENT, 期待CONST_INT(或其他4個令牌)附近

我試圖這樣查詢

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

但仍斯芬克斯給出錯誤 'WHERE ID = 1157642 comments_count + 3',

錯誤1064(42000):sphinxql:語法錯誤,意想不到的IDENT, 期待CONST_INT(或其他4個令牌)附近「值(comments_count)+ 3 WHERE id = 1157642'

如何在sphinx實時索引中使用更新的舊值添加新值?

我使用PHP來做到這一點。

沒有關於它的http://sphinxsearch.com/docs/current.html#sphinxql-update

回答

1

你可以沒有太多的信息。需要先運行一個SELECT查詢來獲取當前值,然後運行UPDATE。

不確定是否可以使用事務來使更新原子化。

+0

yikes,多1條查詢,每條記錄。無論如何感謝您的回覆。 – AMB