› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
617953997
V2EX  ›  MySQL

不借助其他工具,单纯的 SQL 语句能不能做到这种效果

  •  
  •   617953997 · Jan 13, 2022 · 4431 views
    This topic created in 1726 days ago, the information mentioned may be changed or developed.
    1 子用户
    用户 1 1 子用户
    1 子用户
    2 子用户
    用户 2 2 子用户

    用户 1 和用户 2 最好可以类似于 Excel 中的合并单元格 合并掉上下的空行.

    15 replies  •  2022-01-13 15:03:26 +08:00
    littlecap
        1
    littlecap  
       Jan 13, 2022 via iPhone
    搜一下 for xml path('')
    Unicorns96
        2
    Unicorns96  
       Jan 13, 2022
    group by
    MIUIOS
        3
    MIUIOS  
       Jan 13, 2022
    SQL 一大堆函数可以玩的 肯定可以
    zgc27wo
        4
    zgc27wo  
       Jan 13, 2022
    select 用户, GROUP_CONCAT(子用户) from 表 group by 用户; 子用户是 [ 2 子用户,2 子用户 ] 这样的形式.
    singerll
        5
    singerll  
       Jan 13, 2022 via Android
    结果集上能做到,但合并单元格这个格式我觉得不能。。。
    2i2Re2PLMaDnghL
        6
    2i2Re2PLMaDnghL  
       Jan 13, 2022   ❤️ 2
    合并单元格是破坏表格的行为,逻辑上来说就行不通。倒不如说合并单元格本身就是糟糕的设计。
    c6h6benzene
        7
    c6h6benzene  
       Jan 13, 2022 via iPhone
    合并单元格是展示时候的需求吧,你 select 的结果集也要做到这效果…?
    RedBeanIce
        8
    RedBeanIce  
       Jan 13, 2022
    建议前端去做。。mysql 这个做不到吧
    vanton
        9
    vanton  
       Jan 13, 2022
    这是前端的活,拿到数据前端自行组织。
    后端不要考虑这种花活,除了增加负担、更容易出错外,没任何好处。
    vincent7245
        10
    vincent7245  
       Jan 13, 2022
    SELECT
    CASE WHEN FIRST_B=B THEN A ELSE '' END AS A_VALUE,
    B
    FROM
    (SELECT
    FIRST_VALUE(B) OVER(PARTITION BY A ORDER BY B) AS FIRST_B,
    A,
    B
    FROM T) T0
    flyingghost
        11
    flyingghost  
       Jan 13, 2022
    反向思考一下,关系型数据库做不到合并单元格,但可以“拆分”单元格啊。
    用户 1, {"1 子用户", "1 子用户", "1 子用户"}
    用户 2, {"2 子用户", "2 子用户", "2 子用户"}
    返回这么两行就行了。/手动狗头
    Masonnn
        12
    Masonnn  
       Jan 13, 2022
    row_number() over(partition by xxx) ?
    shakaraka
        13
    shakaraka  
       Jan 13, 2022
    这个是展示端的功能,和数据库有毛线关系
    final7genesis
        14
    final7genesis  
       Jan 13, 2022
    让前端去搞, 前 n 列相同的自动合并
    Kilerd
        15
    Kilerd  
       Jan 13, 2022
    合并单元格应该做不到吧,但是可以 sort by 用户,然后 row_number partition by 用户,然后 row_number = 0 才显示用户名
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2357 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 04:14 · PVG 12:14 · LAX 21:14 · JFK 00:14
    ♥ Do have faith in what you're doing.