pca*_*elo 2 php mysql while-loop
我有一个具有这种结构的数据库:
name|color
paul|blue
mary|red
paul|green
joe |yellow
paul|purple
mary|orange
paul|white
etc |etc
Run Code Online (Sandbox Code Playgroud)
我在这里想要实现的是列出与名称相关的颜色,如下所示:
paul=blue,green,purple,white
mary=red,orange
joe=yellow
Run Code Online (Sandbox Code Playgroud)
我正在检查一些例子并发现了这个:
$query="SELECT * FROM mytable order by name";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['name']. " - ". $row['color'];
echo "<br />";
}
Run Code Online (Sandbox Code Playgroud)
说实话,我只是不知道如何从这个到我想要实现的目标.如何创建一个条件,列出与一个名称关联的所有颜色,然后跳转到下一个,依此类推?
您需要使用GROUP_CONCAT.尝试这样的事情:
SELECT
name,
GROUP_CONCAT(color) AS color
FROM mytable
GROUP BY name
Run Code Online (Sandbox Code Playgroud)
看到这个小提琴 -更新
如果您需要考虑重复,请使用GROUP_CONCAT(DISTINCT color).您还可以包含自定义SEPARATOR,但如果您将其保留,则默认为,.因此,在您的情况下,您不需要指定.另外,正如上面链接的文档中所示,如果需要,您可以按照您认为合适的方式对颜色进行排序 - 但请注意,默认顺序是ASC,因此您也不需要指定颜色,除非你想改变它.