我需要将数据从phpbb中的karma mod传输到smf中的karma。
Phpbb有一个表phpbb_karma
,它基本上是一个业力日志。我们需要关注的重要领域是user_id
(获得业力的用户)和karma_action
(正面或负面的业力,显示为+或 - )。
我需要一个查询来计算所有优缺点,然后将每个唯一user_id
的给定结果复制到相应smf_members
(id_member
字段下的user_id
表中在smf)和karma_good
(所有的优点)和karma_bad
(所有的缺点)。
我认为可以做到,但我不是SQL专家。
答案 0 :(得分:1)
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;
答案 1 :(得分:0)
How about something like this:
SELECT DISTINCT user_id, (SELECT COUNT(1) as points
FROM phpbb_karma
WHERE action = '+' and k.user_id = user_id),
(SELECT COUNT(1) as points
FROM phpbb_karma
WHERE action = '-' and k.user_id = user_id)
FROM
phpbb_karma k
不是最优化的一个,但考虑到这是一次性操作,那么它并不重要。