繁体   English   中英

需要更新mySQL表列中缺少的信息

[英]Need to update missing info in mySQL table column

我又回来了 一直在搜索并尝试了几个小时……找不到答案,甚至没有找到正确的问题。

我想修复使用phpMyAdmin中的查询从内存(以及Works中的成员列表)中重新创建的崩溃表。 我需要填充每个成员的帖子总数。

forum_messages

member_id  | message |
--------------------
1          |      Hello  |
3          |      One, Two, Three  |
1          |      Howdy!  |
2          |      Here we are again!  |
2          |      To answer your question...  |

forum_members

member_id  | posts |
--------------------
1          |      0  |
2          |      0  |

在forum_messages中,forum_members应该最终看起来像这样:

forum_members

member_id  | posts |
--------------------
1          |      2  |
2          |      2  |
3          |      1  |

谢谢!

使用INSERT SELECT查询,您应该能够重建在forum_members表中丢失的数据。

这将返回每个member_id的消息数:

SELECT member_id, COUNT(*) FROM forum_messages GROUP BY member_id;

将其与INSERT查询进行整理会将其放入表中,而不是像通常在SELECT查询中那样显示数据。

INSERT INTO forum_members (member_id, posts) SELECT member_id, COUNT(*) FROM forum_messages GROUP BY member_id;

这应该可以解决。.请注意,代码未测试 您应该在执行更新查询之前,回显更新查询的结果以检查其是否正确。

$get_memberid = "SELECT distinct(member_id) as member_id FROM forum_members;";
    $Rget_memberid = mysql_query($get_memberid) or die(mysql_error());

    while($row_get_memberid = mysql_fetch_array($Rget_memberid))    {
        $arr_get_memberid[] = array( "member_id"    => $row_get_memberid['member_id'] );
    }

for ($c = 0; $c < count($arr_get_memberid); $c++){
    $update_count = "UPDATE forum_members set posts = (SELECT count(member_id) from forum_messages where member_id = '".$arr_get_memberid[$c]['member_id']."') where member_id = '".$arr_get_memberid[$c]['member_id']."';";
        $Rupdate_count = mysql_query($update_count) or die(mysql_error());
}

我认为您只需要按成员数统计邮件,不是吗?

如果是这样,请使用以下SQL:

TRUNCATE TABLE forum_members;
INSERT INTO forum_members(member_id, posts)
 SELECT member_id, COUNT(1) FROM forum_messages GROUP BY member_id;

尝试这个 :

UPDATE forum_members SET posts = (SELECT COUNT(*) FROM forum_messages where forum_messages.member_id = forum_members.member_id GROUP BY forum_messages.member_id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM