【问题标题】:MYSQL order by and group by empty valueMYSQL 按空值排序和分组
【发布时间】: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 的表结构?您也可以发布您尝试过的查询吗?
  • 不要从不从不发布表格图片。将CREATEINSERT 语句发布为text。但无论如何,您要求的是表示层的工作,而不是 DBMS。
  • 排序不清楚。想象一下,在time 列中有一行空的section11:00 - 它必须放在哪里?当time12:15 时也是如此...
  • 但是当我使用示例时 查询在语法上是不正确的。如果 ONLY_FULL_GROUP_BY 被禁用,则输出是不确定的。 我得到这样的结果 结果与数据和查询文本不匹配。

标签: mysql group-by sql-order-by


【解决方案1】:

我用GROUP BY (CASE WHEN section IS NULL OR section='' THEN id ELSE section END)解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 2014-07-24
    • 2017-08-11
    • 2020-02-15
    • 2014-02-17
    • 2011-12-24
    • 2012-03-01
    • 2020-05-16
    相关资源
    最近更新 更多