MYSQL 按空值排序和分组
Posted
技术标签:
【中文标题】MYSQL 按空值排序和分组【英文标题】:MYSQL order by and group by empty value 【发布时间】:2021-10-14 17:09:35 【问题描述】:我正在尝试通过从我的表中显示一些复杂的数据来解决我的问题。 我的表结构是这样的:
/* CREATE TABLE */
CREATE TABLE table_name(
id int(11),
section tinytext,
time tinytext,
text time
);
INSERT INTO table_name(id, section, time, text)
VALUES (1, 'A', '10:00:00', 'text 1');
INSERT INTO table_name(id, section, time, text)
VALUES (2, 'A', '12:00:00', 'text 2');
INSERT INTO table_name(id, section, time, text)
VALUES (3, 'B', '10:00:00', 'text 3');
INSERT INTO table_name(id, section, time, text)
VALUES (4, '', '15:00:00', 'text 4');
INSERT INTO table_name(id, section, time, text)
VALUES (5, 'B', '12:30:00', 'text 5' );
INSERT INTO table_name(id, section, time, text)
VALUES (6, '', '9:00:00', 'text 6');
我得到这样的结果:
它将空白部分组合成一个部分:-(
你知道如何达到我的需要吗?我需要按时间对数据进行排序,但是当它们具有相同的部分时,将其分组,然后在下一次使用数据(如果该部分为空)
【问题讨论】:
嗨!你能发布你的查询吗?以及使用 CREATE TABLE 和 INSERT INTO 的表结构?您也可以发布您尝试过的查询吗? 不要不、从不、从不发布表格图片。将CREATE
和INSERT
语句发布为text。但无论如何,您要求的是表示层的工作,而不是 DBMS。
排序不清楚。想象一下,在time
列中有一行空的section
和11:00
- 它必须放在哪里?当time
是12:15
时也是如此...
但是当我使用示例时 查询在语法上是不正确的。如果 ONLY_FULL_GROUP_BY 被禁用,则输出是不确定的。 我得到这样的结果 结果与数据和查询文本不匹配。
【参考方案1】:
我用GROUP BY (CASE WHEN section IS NULL OR section='' THEN id ELSE section END)
解决了这个问题
【讨论】:
以上是关于MYSQL 按空值排序和分组的主要内容,如果未能解决你的问题,请参考以下文章