我试图获取用逗号 (,) 分隔的用户名列表,我使用了这个 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
来修复上述代码?或者还有其他方法吗?
提前致谢!
最佳答案
修复
filter your users in subquery before passing to 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 |
+-----------------------+
关于php - 在 PHP/MySql 中使用 group_concat 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238489/