我试图获取用逗号(,)分隔的用户名列表,并使用了这个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
修复上述代码?或者还有其他方法吗?
提前致谢!
答案 0 :(得分:2)
<强>修复强>
在传递给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 |
+-----------------------+
答案 1 :(得分:1)
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
请检查一下,这将对您有所帮助。