【问题标题】:Get parent id from child id SQL PHP从子 ID SQL PHP 获取父 ID
【发布时间】:2017-11-23 08:04:13
【问题描述】:

我在表中有数据,并且想要获取 ID 的顶部(父 ID 来自子 ID)。

id (primary_key)        item_id             secondary_item_id
464                     449                 449
465                     449                 464
467                     449                 465

从这张表中,我想从 id '467' 获取 id '464'。我试试:

$parent_id = $wpdb->get_var( "
    SELECT id
    FROM {$bp->activity->table_name}
    WHERE id = 467
" );

但是返回465,我想要464。我只想使用一个查询。而不是多个查询。 请帮忙。

【问题讨论】:

  • bp->activity->table_name 是什么?尝试将其添加到文本中,而不是 bp->activity->table_name。您需要对此进行调试。
  • 好的,我编辑了问题。bp->activity->table_name 只是表名。
  • 那么,你想要来自 id 的 secondary_item_id 吗?
  • @Ronnie Oosting,没有。我只想要主 ID。并从主 ID 获取结果。
  • 您可以尝试这样做吗?:选择 * 和 var_dump($parent_id); ?我想知道你得到了什么结果。

标签: php mysql sql wordpress


【解决方案1】:
$reply = 467; 
for ($x = 1; $x <= 2; $x++) { 
$reply = $wpdb->get_var( " 
SELECT secondary_item_id 
FROM {$bp->activity->table_name} 
WHERE id = $reply 
" ); 
} 

将其更改为我们在聊天中讨论的内容。你用错了SELECT

wordpress 函数文档:https://developer.wordpress.org/reference/classes/wpdb/

也许您可以更改 for 循环并使用 wordpress 提供的另一个功能。我以前没有使用过wordpress,所以我不能告诉你应该使用哪一个。如果您(或其他任何人)可能知道,我可以更改此答案。

【讨论】:

    【解决方案2】:

    在 mysql 查询中使用 ORDER BY id DESC

    <?php
    $parent_id = $wpdb->get_row( "
        SELECT ID
        FROM {$bp->activity->table_name}
        WHERE id = 467 ORDER BY `id` DESC 
    " );
    ?>
    

    【讨论】:

    • 这仍然只会让你获得 467。看看上面的@ronnieoostings 评论。
    • 好的,我编辑了问题But return 465, i want 464
    • 然后你可以使用 WHERE id = 467 ORDER BY idASC
    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 2017-05-23
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多