SELECT
col2,
GROUP_CONCAT(col1 SEPARATOR ',') as stuff
FROM table1
GROUP BY col2
如果你想“ - ”在名字前面,你可以用CONCAT('-',col1)
代替col1
。
这PHP代码将结果转换成一维数组
$conn = new mysqli('host','user','pass','db_name');
if ($conn->connect_errno) {
printf("Connect failed: %s\n", $conn->connect_error);
exit();
}
if (!($rs = $conn->query("
SELECT
col2,
GROUP_CONCAT(col1 SEPARATOR ',') as stuff
FROM table1
GROUP BY col2
"))) {
printf("Error: %s\n", $conn->error);
exit();
}
$result = array();
while ($row = $rs->fetch_object()){
$result[] = $row->col2;
if(!empty($row->stuff)) $result = array_merge($result,explode(',',$row->stuff));
}
@Truth你可能想避免重新格式化,当它改变问题的意思。它现在意味着MHZ希望将所有内容放在一列中(可能或不可能)。 – Vatev 2012-07-29 15:59:56
@Vatev:如果你看过问题的原始代码([让我帮你!](http://stackoverflow.com/revisions/58cf3e90-4f5e-4788-ab5b-0eb33f81bb7f/view-source))你会知道为什么我按照我的方式编辑它:) – 2012-07-29 16:10:12
@Truth对不起,我只查看格式化版本。 – Vatev 2012-07-29 16:13:12