gpt4 book ai didi

php - 我应该使用 GROUP_CONCAT 吗?

转载 作者:行者123 更新时间:2023-11-29 14:47:22 25 4
gpt4 key购买 nike

我有 2 个表 CP 和 CS 的结构如下。

CP
id tu su
1 7 1
2 7 2

.------------------------------------------------.

CS
id st cp
1 8 1
2 9 1
3 9 2
4 2 1

.--------------------------------.

我想创建一个函数 get_cp($tu) 来返回这样的数据。get_cp(7) =

su
'1'
[0] = array('st'=>'8')
[1] = array('st'=>'9')
[2] = array('st'=>'2')
'2'
[0] = array('st'=>'2')

似乎我可以使用 GROUP_CONCAT 来制作 X 分隔字符串,然后解析它......但我想知道是否有“更好”的方法。解析字符串看起来很浪费,如果 mySQL 能像这样返回数据那就太好了。我是否应该根本不使用 GROUP,然后在拥有大量重复项后使用 php 将内容分组在一起?

谢谢!如果您不确定我在问什么,请提问。谢谢!!

最佳答案

您可以使用GROUP_CONCAT()。一般来说,我认为如果你能在数据库端做到这一点,你应该这样做。

但是,在这种情况下,无论您使用什么查询,都必须循环结果来构造您所描述的数组。

因此,我将执行以下查询并使用 PHP 构建分组。

$data = array();
$results = mysql_query('SELECT st, cp FROM CS');

while ($row = mysql_fetch_assoc($results)) {
$data[$row['cp']][] = $row['st'];
}

注意:这不是为了性能而订购的。如果您需要按特定顺序排列它们,请添加 ORDER BY

关于php - 我应该使用 GROUP_CONCAT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644740/

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