gpt4 book ai didi

php - 查询数据库后打印出部分唯一的数据

转载 作者:行者123 更新时间:2023-11-29 08:49:19 25 4
gpt4 key购买 nike

我无法弄清楚如何使用我需要的表数据...我的表由类别名称列(许多子类别具有相同的值)组成,另一列包含子类别名称。

例如:

col1        col2
------------------
apples fruits
oranges fruits
pears fruits
honda cars
volvo cars
audi cars

我正在尝试编写一个选择语句,从数据库中选择所有数据并仅打印一次类别名称,同时打印该特定类别名称包含的所有子类别。

类似于:

水果:

  • 苹果
  • 橙子

汽车:

  • 本田
  • 沃尔沃
  • 奥迪

最佳答案

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));
}

关于php - 查询数据库后打印出部分唯一的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com