繁体   English   中英

在PHP / MySql中使用group_concat获取

[英]Fetching using group_concat in PHP/MySql

我试图获取用逗号分隔的用户名列表,并且使用了以下SQL:

$sql="select group_concat(concat(' ',username,' ')) as username from user";
$var=mysql_query($sql);
while($v=mysql_fetch_assoc($var)){ $variable=$v['username']; }
echo $variable;

在这里忽略mysql_ *函数。

上面的SQL帮助我获取数据库中所有用户的列表并回显它,但是当我在末尾使用LIMIT 3和/或ORDER BY rank时遇到了问题:

$sql="select group_concat(concat(' ',username,' ')) as username from user ORDER BY rank LIMIT 3";

添加ORDER BY ....后,结果将保持不变。

有什么方法可以在SQL末尾使用ORDER BY rank LIMIT 3修复上述代码? 还是有其他方法可以做到?

提前致谢!

固定

在传递给group_concat之前,先在子查询中过滤用户。

调整查询

select group_concat(concat(' ',username,' ') ORDER BY rank ) as username 
from
(
select id, username, rank
from user
order by rank
limit 3
) filtered_users
;

产量

+-----------------------+
|       username        |
+-----------------------+
| jonny , zelda , maria |
+-----------------------+

sqlfiddle

SELECT GROUP_CONCAT(username )  
FROM user
GROUP BY id;

http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php

请检查,这将为您提供帮助。

暂无
暂无

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

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