mysql 分组 列转行】的更多相关文章

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>…
mysql之行转列与列转行是数据查询的常见操作,以更好的来展示数据,下面就详细说说怎么实现. 行转列 行转列的话,就是将一条一条的行数据记录转换为一条列数据展示,一般来说是根据某一列来做汇总数据的操作,看着更直观,一目了然. 建表语句: CREATE TABLE `st_grade` ( `id` ) NOT NULL AUTO_INCREMENT, `stu_name` ) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `co…
我们有时会将一些数据已逗号的连接方式存在数据库,当取出时我们又想单独一个个取出来 利用help_topic 的自增性 LENGTH(wu.`password`) - length(replace(wu.password,',',''))+1 计算出有多少个数据 join可以循环生成连接 即 一对多 SELECT wu.id,ht.help_topic_id,substring_index(substring_index(wu.`password`,),) FROM `web_userinfo`…
最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用. 一.行转列:将原本同一列下多行的不同内容作为多个字段,输出对应内容. 效果图: 数据库表中的内容: 转换后: 可以看出,这里行转列是将原来的f_subject字段的多行内容选出来,作为结果集中的不同列,并根据f_student_id进行分组显示对应的f_score: 上SQL: select f_s…
1.正常情况. SELECT JoinEventIds from nt_mainnum 2.使用group_concat函数 select group_concat(JoinEventIds) from nt_mainnum 3.使用SUBSTRING_INDEX和CROSS JOIN将列里面的的数字都拆分出来. 方法一(网上查询的方法): 建配置表: )); INSERT INTO digits VALUES (), (), (), (), (), (), (), (), (), (); ))…
今天突然想到了数据库中的行专列与列转行,还不熟悉,在上网看了一下然后就自己写了个例子. 数据库表示这样滴! //全部查询出来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…