SELECT aa.type,CONCAT('(',GROUP_CONCAT('\'',aa.user_id separator '\'\,'),'\')') FROM (select aa.type,user_id FROM t_user_cust_info limit 2000) aa GROUP BY aa.type ; 1,把表中某一列的内容合并为一行 select province,CONCAT('[\"全部\",\"',GROUP_CONCAT(city OR…
mysql列转行可以通过concat,先分组然后连接. show VARIABLES like '%group%' select @@group_concat_max_len SELECT GROUP_CONCAT(goods_id), as lzh FROM ts_goods WHERE ts_goods.cat_id_1 = OR ts_goods.cat_id_2 = OR ts_goods.cat_id_3 = group by lzh 这里默认的限制是1024字节,可以通过set调整一…
通过group_concat()函数来实现 select group_concat(name) from table group by type select group_concat(name separator ';') from table group by type select group_concat(name separator ';') from table where column like '%sys%' 当确定列数时可采用下面sql将列转为行 SELECT userid,…
行转列--两种方法第一种方法:行转列我们通常是使用交叉连接和子查询的方式做到,比如下面的例子,查询每个name的对应id的和mysql> select * from user; +----+------+ | id | name | +----+------+ | | a | | | b | | | c | | | d | | | a | | | a | | | c | | | d | +----+------+ 我们用分组查询能得到每个name的id的和,但是是行的形式展示的.mysql>…
今天突然想到了数据库中的行专列与列转行,还不熟悉,在上网看了一下然后就自己写了个例子. 数据库表示这样滴! //全部查询出来SELECT (case type when 'MySql数据库' then id else NULL END) as 'MySql数据库', (case type when 'SqlServer数据库' then id else NULL END) as 'SqlServer数据库', (case type when 'CSharp' then id else NULL…
数据表: 列转行:利用max(case when then) max---聚合函数 取最大值 (case course when '语文' then score else 0 end) ---判断 as 语文---别名作为列名 SELECT `name`, MAX( CASE WHEN course='语文' THEN score END ) AS 语文, MAX( CASE WHEN course='数学' THEN score END ) AS 数学, MAX( CASE WHEN cou…