0

update the Sphinx Search Realtime IndexMysql テーブルの値を使用して、次のように 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 

しかし、スフィンクスは私にエラーを与えます

エラー 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 に答える