[英]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.