如何進行數據表與數據表之間的關聯性更新?

发布于 2022-09-07 23:34:18 字数 1157 浏览 13 评论 0

SQL

$rs = $do->query(
    "SELECT
      t.name as name,
      tr.object_id as object_id
    FROM wp_terms as t
    JOIN wp_term_relationships as tr ON tr.term_taxonomy_id = t.term_id
    JOIN blog as b ON b.url = tr.object_id "
  );

UPDATE

while ($r = mysqli_fetch_array($rs)){

  $key = '';
  $key .= $r['name'];

  $do->query(
    "UPDATE `blog` SET
    `tags` = '{$key}'
    WHERE url = '{$r['object_id']}' "
  );

}

根據數據表 ttr 利用 tr.object_idt 找對應的 t.name

數據庫結構:
object_id / name
clipboard.png

目的是我要更新到 數據表 blogtags 字段中,並利用 , 間隔。
tr.object_id 也等於是 b.url

blog as b
url / tags

例如13421 這篇 blog,我想將他的所有 name 都丟到 b.tags 中,用 , 間隔

但現在發生的問題是,永遠都是最後一個被更新進去 b.tags !
假設這篇 blog 找到了 a,b,c,d,e, ,當丟進去 b.tags 的時候就只有 e,
這是咋了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活泼老夫 2022-09-14 23:34:18

你的while,每执行一次都有将$key置空并连接上$r['name'],并且每次while都有UPDATE

你要把$key=''提到循环外。

我不知道你是怎么打算的的,照你的代码来看,你如果是a,b,c,d,e五个,就会更新五次为a,a,b,a,b,c,a,b,c,d,a,b,c,d,e,。如果你只想更新一次,你的UPDATE也要提到循环外

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文