如何在不使用PHP循环的情况下返回MySQL结果数组


How to return a MySQL array of results without using a PHP loop

我正在尝试将此查询与另一个查询联接,但这需要一次完成所有操作而不留下此语句。

MYSQL

"SELECT pid FROM posts WHERE uid = ? && state = 'a' ORDER BY time DESC LIMIT 5"

使用 PHP 的 while。

while($row = $get->fetch()){
    echo $row['pid'].' ,';
}

我得到类似的东西:2,5,8,31,40

有没有办法在不退出查询的情况下获取相同的值?

选择这样的东西作为returned_values

所以我可以做:$row['returned_values'];并得到:"2,5,8,31,40">

只需使用 GROUP_CONCAT

"select GROUP_CONCAT(pid) as returned_values from ( SELECT pid  FROM posts WHERE 
                            uid = ? 
                            && state = 'a' 
                            ORDER BY time DESC 
                            LIMIT 5) as s"

参考这个 : http://www.mysqltutorial.org/mysql-group_concat/