gpt4 book ai didi

php - MySQL + Php如何对数据进行分组?

转载 作者:行者123 更新时间:2023-11-29 01:52:13 25 4
gpt4 key购买 nike

我需要从我的数据库中提取和显示一些信息。我的问题是:“fatura”列(在表 A 中)总是会链接到多个“stur”行(在表 B 中)。我找不到如何不为每个“stur”显示相同的“fatura”。

我的代码:

<?php
$mysqli = NEW MySQLi('localhost','root','','server');

$sqlFatura = $mysqli->query("SELECT fatura,stur
FROM faturas inner join anexos
WHERE ID_fatura = FK_fatura
");


if($sqlFatura->num_rows > 0){
while($rows = $sqlFatura->fetch_assoc()){
$fatura = $rows['fatura'];
$stur = $rows['stur'];

echo "<p> Fatura $fatura => Stur: $stur </p>";
?>

现在的结果:

 'Fatura FT01 => Stur 01
Fatura FT01 => Stur 02
Fatura FT01 => Stur 03
Fatura FT02 => Stur 04
Fatura FT02 => Stur 05'

需要:

  'Fatura FT01 => Stur 01, 02, 03
Fatura FT02 => Stur 04, 05

欢迎提出任何建议。

提前致谢!

最佳答案

您可以尝试将 GROUP BY ID_faturaGROUP_CONCAT(stur) 一起使用。

SELECT
fatura,
GROUP_CONCAT(stur) AS allSturs
FROM
faturas
INNER JOIN anexos ON ID_fatura = FK_fatura
GROUP BY ID_fatura

注意:由于 stur 的列名称已更改为 allSturs,因此您需要更改获取它的值的行。

$stur = $rows['allSturs'];

警告:

Beware of MySQL max size for a string variable and GROUP_CONCAT.

If GROUP_CONCAT max length is the limit (1024 by default) you should alter the temporary setting (session-scope) for length of it. It's done by:

SET SESSION group_concat_max_len = 10000

Set group_concat_max_len permanently (MySQL config)

关于php - MySQL + Php如何对数据进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549723/

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