gpt4 book ai didi

mysql - 升级后需要帮助修复 MySQL 数据库中损坏的关系链接

转载 作者:行者123 更新时间:2023-11-29 14:52:12 25 4
gpt4 key购买 nike

我最近升级了论坛数据库,但帖子未链接到用户。查看表格,我可以看到以下内容(为简洁起见,缩短了所有表格的示例):

jos_posts:

 Poster = Guest  (which is incorrect)
Poster_ID = 0 (which is incorrect)
Topic_ID = 10

jos_主题:

 id = 10
Poster = Ian

jos_users:

 Poster_ID = 2153
Username = Ian

因此,尽管 jos_posts 中的 poster_ID 错误地显示为 0,但与 Topic_ID 的关系链接意味着可以找到真正的 Poster 以及随后来自 jos_users 表的 Poster_ID,并且希望 jos_posts 表已更新。

在我看来,我需要执行以下步骤:

  1. 查看 jos_posts 中的每个帖子,将 Topic_ID 保存到变量中,
  2. 转到 jos_topics 表并搜索 id,并将 Poster 保存到变量中,
  3. 转到 jos_users,搜索海报并将 Poster_ID 保存到变量中,
  4. 返回 jos_posts 并使用收集到的变量更新 Poster 和 Poster_ID。
  5. 最后跳下一行,循环上面的操作,直到 jos_posts 表中不再有记录为止。

现在我的问题:我的 php/SQL 编码非常差,所以有人能确认我上面的逻辑是正确的吗?如果可能的话,请给我指出正确的方向来编写一个可以纠正 jos_posts 表的简短程序?

最佳答案

不需要循环,只是两个简单的SQL语句:

update jos_posts set poster_id = (
select u.poster_id from jos_topics t, jos_users u
where t.id = topic_id and t.poster = u.username);

随着海报栏的后续更新,一切都应该没问题:

update jos_posts set poster = (
select u.username from jos_users u where u.poster_id = poster_id);

关于mysql - 升级后需要帮助修复 MySQL 数据库中损坏的关系链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com