zoukankan      html  css  js  c++  java
  • mysql:一列转多行,多行转一列

    系统中有这样一个表table_ids,parrent_ids保存的是一串用逗号隔开的id

    需求:以orleid为依据,拼接id、parent_ids,同时要求去除重复的id。

    思路:先拼接id、parent_ids为一个字符串(暂且叫idstr),去除最后一个逗号,然后以roleid为依据,把idstr按逗号分割成多行,去重,再把多行拼接为一列。

      其中tmp_numindex表为只有一个字段id,类型为int,保存从1到10000的连续数字。

    SELECT roleid,GROUP_CONCAT(str) FROM (
    SELECT DISTINCT
        roleid,
        REPLACE(
            SUBSTRING_INDEX(str, ',', a.id),
            CONCAT(
                SUBSTRING_INDEX(str, ',', a.id - 1),
                ','
            ),
            ''
        )AS str
    FROM
        tmp_numindex a
    CROSS JOIN(
        SELECT
            roleid,
            CONCAT(str, ',')AS str,
            LENGTH(str)- LENGTH(REPLACE(str, ',', ''))+ 1 AS size
        FROMtable_ids
    )b ON a.id <= b.size ) a GROUP BY roleid
  • 相关阅读:
    jquery.autocomplete插件完美应用
    java原生 简单缓存工具类
    免费的内网穿透分享
    文献笔记6
    文献笔记4
    文献笔记7
    文献笔记9
    文献笔记1
    文献笔记2
    文献笔记8
  • 原文地址:https://www.cnblogs.com/MQNH/p/6831361.html
Copyright © 2011-2022 走看看