[英]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 |
+-----------------------+
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.