簡體   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