0

私はstackoverflowの非常に有益なメンバーによって書かれたこのクエリを持っています

update smf_members a, 
(select user_id,
sum(if(karma_action='+',1,0)) karma_good,
sum(if(karma_action='-',1,0)) karma_bad
from phpbb_karma
group by user_id) b
set a.karma_good=b.karma_good, a.karma_bad = b.karma_bad
where a.id_member = b.user_id;

次の目的で作成されました: phpbb のカルマ mod から smf のカルマにデータを転送する必要があります。

Phpbb には、基本的にカルマ ログであるテーブル phpbb_karma があります。注目すべき重要なフィールドは、user_id (カルマを取得したユーザー) と karma_action (+ または - で示される正または負のカルマ) です。

すべてのプラスとマイナスをカウントし、一意の user_id ごとに与えられた結果を、適切な id_member (smf の user_id フィールド) と karma_good (すべてのプラス) および karma_bad (すべてのマイナス) の下の smf_members テーブルにコピーするクエリが必要です。

ここで、少し変更が必要です。データを phpbb_karma から mybb_reputation に転送します。

次のフィールドを転送する必要があります。

user_id -> uid
post_id -> pid
poster_id -> adduid
karma_action -> reputation (if its +, then 1, if its -, then -1)
karma_time -> dateline
comment_text -> comments

前もって感謝します

4

1 に答える 1

0

次のような挿入を意味しますか:

insert into mybb_reputation (uid, pid, adduid, reputation, dateline, comments)
select user_id as uid, post_id as pid, poster_id as adduid, case when karma_action= '+' then 1 when karma_reputation='-' then -1 end as reputation, karma_time as dateline, comment_text as comments from phpbb_karma
于 2013-07-04T17:46:32.077 に答える