gpt4 book ai didi

MySQL 行标题基于查询中按字段分组的顺序

转载 作者:行者123 更新时间:2023-11-29 08:37:28 24 4
gpt4 key购买 nike

我想在基于 ORDER BY 字段的 MySQL 查询中输出行分组 header 。不确定如何解释这一点,因此最好只展示一个我想要完成的任务的示例。

SELECT * FROM products_table
ORDER BY Category, Description


Prod_num Category Description Price
type_1
00001 type_1 Prod 1 $1
00002 type_1 Prod 2 $2
00003 type_1 Prod 3 $3
00004 type_1 Prod 4 $4
00005 type_1 Prod 5 $5
type_2
00006 type_2 Prod 6 $6
00007 type_2 Prod 7 $7
00008 type_2 Prod 8 $8
00009 type_2 Prod 9 $9
type_3
00010 type_3 Prod 10 $10
00011 type_3 Prod 11 $11

我希望在显示该类别的所有产品之前将类别字段显示为行标题。我想我在某处看到过这篇文章,但经过大量搜索后无法弄清楚如何做到这一点,主要是因为我认为我没有使用正确的术语。

最佳答案

我坚信这应该在代码的表示端完成,但是,这就是我过去使用 GROUP BYWITH 完成的方式汇总:

SELECT  Category, 
IFNULL(prod_num,'') Prod_Num,
IFNULL(description,'') Description,
IFNULL(price,'') Price
FROM
(
SELECT *
FROM Products_Table
GROUP BY Category,Prod_num,Description,Price
WITH ROLLUP
) AS X
WHERE Category IS NOT NULL
AND (
(Prod_num IS NOT NULL AND Description IS NOT NULL AND Price IS NOT NULL)
OR
(Prod_num IS NULL AND Description IS NULL AND Price IS NULL)
)
ORDER BY Category,Prod_num,Description,Price

这并不是 100% 您所要求的,因为它将类别列放在第一位 - 我还没有充分尝试过它是否可以更改。

结果如下:

CATEGORY  PROD_NUM  DESCRIPTION  PRICE
type_1
type_1 00001 Prod 1 $1
type_1 00002 Prod 2 $2
type_2
type_2 00003 Prod 3 $3
type_2 00004 Prod 4 $4
type_2 00005 Prod 5 $5
type_3
type_3 00006 Prod 6 $6

还有一个样本Fiddle .

http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html

关于MySQL 行标题基于查询中按字段分组的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864931/

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