繁体   English   中英

如何使用PHP分离SQL结果?

[英]How can I separate the SQL results using PHP?

我创建了一个查询,该查询返回以下结果。 返回结果后,是否可以通过object_id拆分这些结果? 我曾尝试按SQL中的object_id进行分组,但仅返回来自对象ID: 212的结果。

我只需要将这些结果分组即可使用PHP进行显示。 任何帮助将不胜感激。 谢谢!

SQL结果

这是包含查询的PHP代码:

$querystr = "
    SELECT $wpdb->term_relationships.object_id, $wpdb->postmeta.meta_key, $wpdb->postmeta.meta_value
    FROM $wpdb->term_relationships
    INNER JOIN $wpdb->postmeta ON $wpdb->term_relationships.object_id = $wpdb->postmeta.post_id
    WHERE $wpdb->term_relationships.term_taxonomy_id
    IN (107, 108)
    AND $wpdb->postmeta.meta_key
    LIKE 'c%'
    AND $wpdb->postmeta.meta_value != ''";

$pageposts = $wpdb->get_results($querystr, OBJECT);
?>

<?php if ($pageposts): ?>
    <?php global $post; ?>
    <?php foreach ($pageposts as $post): ?>
        <?php print_r($post->object_id); ?>
    <?php endforeach; ?>
<?php else : ?>
    error
<?php endif; ?>

感谢您的迅速反应。 感谢@JenneVanDerMeer,我设法通过将GROUP_CONCAT应用于meta_value并将GROUP BY应用于object_id来返回分组值。 工作查询如下:

SELECT wp_term_relationships.object_id, 
GROUP_CONCAT(wp_postmeta.meta_value), wp_postmeta.meta_key
FROM wp_term_relationships 
INNER JOIN wp_postmeta ON wp_term_relationships.object_id = 
wp_postmeta.post_id
WHERE wp_term_relationships.term_taxonomy_id
IN (107)
AND wp_postmeta.meta_key
LIKE 'c%'
AND wp_postmeta.meta_value != ''  
GROUP BY wp_term_relationships.object_id

一个简单的ORDER BY在这里可以正常工作。

SELECT object_id, meta_value FROM <TABLE> ORDER BY object_id ASC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM