0

どうすればそれができるのか、クエリで可能かどうかわかりません。PHPでできますか?もしそうなら、アイデアや例。

ここには2つのテーブルがあります。

レビュー

id    pid   published
--    ---   ---------
 1     12           0
 2     14           1
 3     16           1

評価

id   rid   ratings                 sum
--   ---   ---------------------   -------
 1     2   4,5,3,3,3.5,5,5,5,4,5   42.5000
 2     4   4,5,3,3,3.5,5,5,5,4,5   42.5000
 3     1   5,5,4,4,5,5,4,4,4,4     44.0000

私がやりたいことは

  1. Review.id = Rating.ridに基づいて評価テーブルを更新します。
  2. 評価フィールドを更新します3または2または1が見つかると、この例のように 4 に更新されます 4, 5, 3, 3, 3.5, 5, 5, 5, 4, 5 は 4, 5, 4 , 4 , 4 , 5 である必要があります、5、5、4、5
  3. 評価フィールドの更新に基づくSUMフィールドは、評価値の合計を自動更新する必要があります。例 この42.5000は45.0000にする必要があります

質問を説明しようとしましたが、明確でない場合は、変更するか、詳細を教えてください。

私のテーブルは例とまったく同じです。評価フィールドのデータ型はテキストです。評価用の別のテーブルはありません。

どんな助けでも大歓迎です。

ありがとうございます。

4

2 に答える 2

2

DB 構造を再設計し、評価の値を別のテーブルに保存する必要があります。たとえば、次のような構造を使用します。

id | review_id | value

そうすれば、これらすべてのことを簡単に行うことができます。

この変更が不可能な場合は、おそらく PHP で行う必要があります。つまり、必要なすべてのデータをクエリratings,、配列内で分解し、配列に対して操作を行います。

ただし、評価を別の表に移動することを強くお勧めします。

于 2013-06-10T15:25:19.943 に答える