mysql group_concat用法】的更多相关文章

MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ 6 r…
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa;+------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+------+6 rows in set (0.00 sec) 以id分组,把name字…
percona有一篇blog: The power of MySQL GROUP_CONCAT 比较详细地介绍了GROUP_CONCAT函数的用法.简单地翻译了一下. 假设你有4名工程师,这周他们为6名客户解决了15个问题.他们之间彼此协作,如何展示他们之间的逻辑关系呢?我是这么做的: 译者的sql与原文给出的sql有些许的差异,不过核心思想是一致的. 创建表: 工程师表 engineers (id, name, surname, URL) 客户表 customers (id, company…
函数 MySQL中提供了许多内置函数 例如: sql 内置函数: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值. 二.聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值 SUM(col)返回指定列…
转载链接:  mysql explain用法 官网说明:     http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数:  http://www.jb51.net/article/38357.htm explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了,如: explain ; explain列的解释…
MySQL group_concat函数是典型的字符串连接函数,下面就为您介绍MySQL group_concat的语法,希望对您学习MySQL group_concat函数有所帮助. MySQL group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| …
mysql group_concat函数被截断的问题   MySQL的 group_concat 函数默认返回1024个字节长度,超过长度的会被截断.最近程序中就遇到这个问题了. 通过如下命令可以查看到当前mysql系统的参数 查询MySQL的 group_concat 函数默认返回长度默认1024个字节show variables like "%concat%"; 2. 有两个方法可以设置group_concat_max_len的值 (1) 在 /etc/my.cnf (my.ini…
存储过程 一. 介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与sql解耦 基于网络传输,传别名的数据量小,而直接传sql数据量大 使用存储过程的缺点: 程序员扩展功能不方便 补充:程序与数据库结合使用的三种方式 方式一: MySQL:存储过程 程序:调用存储过程 方式二: MySQL: 程序:纯SQL语句 方式三: MySQL: 程序:类和对象,即ORM(本质还是纯…
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可 但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便 不推荐使用 #两张有关系的表 mysql> selec…
流程控制 一. 条件语句 if 语句实例: delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THEN SELECT 1; ELSEIF i = 2 THEN SELECT 2; ELSE SELECT 7; END IF; END // delimiter ; 二. 循环语句 while 语句的实例: delimiter // CREATE PROCEDURE proc_while…
触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END # 插入后 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END # 删除前 CRE…
事务 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 事务实例: create table user( id int primary key auto_increment, name char(32), balance int ); insert into user(name,balance) values ('大木木',1000), ('二木木',1000), ('三木木',1000); #原子操作 start transa…
mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- --------------------- -------------- 1 Al Apple 1 Al Cherry Desired output MemberID MemberName FruitName ----------- -------------- ------------ 1 Al Apple, Cherry…
实现类似mysql group_concat的功能 SELECT SG.Id ,SG.GroupName ,HostNames = STUFF((SELECT ',' + SH.[HostName] FROM SaltHost SH WHERE SG.Id = SH.HostGroupId , , '') FROM [SaltGroup] SG ORDER BY SG.Id…
mysql group_concat的长度问题 show variables like 'group_concat_max_len';+----------------------+-------+| Variable_name | Value |+----------------------+-------+| group_concat_max_len | 1024 | +----------------------+-------+1 row in set (0.02 sec) 默认1024…
MYSQL中只有 INNODB和BDB 类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!) Mysql基本用法-存储引擎-02中的test_user表 和 phpcvs表 <?php echo "transaction<br>"; $conn = mysql_connect("localhost","root",""); if(!$conn){ die(mysql_error()); } mysq…
第一张表的worksId在第二张表中对应多条数据,需要将每条数据的日期作为结果查询出来,一个作为“初审时间”,另一个作为“复审时间”: 可以使用group_concat 和 group by 来进行分组查询:然后在服务端进行分割处理 /** * 处理复审时间 * @param list * @return */ public List<Map> handleWorksApplyTime(List<Map> list){ for(Map map : list){ String app…
 基本语法:group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator '分隔符']) 初始数据:                 …
group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来.要返回哪些列,由函 数参数(就是字段名)决定.分组必须有个标准,就是根据group by指定的列进行分组. group_concat函数应该是在内部执行了group by语句,这是我的猜测. 1.测试语句:SELECT group_concat(town) FROM `pl…
目前有三张表: 课程表: course,里面有student_id 学生表:     student,里面有 name 字段 中间表(课程和学生一对多): course_student, 里面有 course_id.student_id 把课程select出来,并且有一个字段保存该课程所有的学生姓名: SELECT `course`.* , group_concat(tb_student. name SEPARATOR ',') FROM `course` join `course_studen…
数据源 user name     age 小红 18 小明 18 小芳 19 ------------------------------------------------------------------------------------------ – 默认逗号连接select u.age,group_concat(u.name)  as NameStr from user u group by u.age; 预览: age         NameStr 18 小红,小明 19 小…
数据库表: 关键字:concat 功能:将多个字符串连接成一个字符串 使用:concat(column1, column2,...)  字段中间可以加连字符 结果:连接参数产生的字符串,如果有任何一个参数为null,则返回值为null 测试:如下 select concat(name,description) from test select concat(name,' ----> ',description) from test 关键字:concat_ws (ws就是with separato…
mysql方法来源于:http://www.cnblogs.com/jjcc/p/5896588.html ###在网上看到一篇,非常赞的方法### 比如说要获取班级的前3名,mysql就可以用GROUP_CONCAT  + GROUP BY + substring_index实现. 考试表 DROP TABLE IF EXISTS `test`;CREATE TABLE `test` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT N…
1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ protected $tableName = 'user';//主表名称 protected $_link = array( 'article'=>array(//从表名称 'mapping_type'=>HAS_MANY,//主表对于从表的关系 主表可以有很多从表内容 'foreign_key'=&g…
本事例实验用表task,结构如下 MySQL> desc task; +-------------+------------+------+-----+-------------------+-------+ | Field       | Type       | Null | Key | Default           | Extra | +-------------+------------+------+-----+-------------------+-------+ | PLA…
如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_increment, `name` VARCHAR (20) NOT NULL DEFAULT '' COMMENT '姓名', sub VARCHAR (20) NOT NULL DEFAULT '' COMMENT '学科', score INT NOT NULL DEFAULT 0 COMMENT '分…
语法: GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val]) 下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据.SQL代码 CREATE TABLE student_courses ( student_id INT UNSIGNED NO…
1. GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你可以通过下面的语句获得: SELECT @@global.group_concat_max_len; show variables like "group_concat_max_len"; 2.在MySQL配置文件中my.conf或my.ini中添加: #[mysqld] group_concat_max_len=102400 3.重启MySQL服务…
看来看一下表中的数据 select * from t; 下一步来看一下group_concat函数的用法 select ID,group_concat(Name) from t group by ID; 如果要消除重复项可以加distinct select ID,group_concat(distinct Name) from t group by ID; 如果还排序可以这样 select ID,group_concat(name order by name desc) from t group…
比如说要获取班级的前3名,oracle 可以用 over partition by 来做.mysql就可以用GROUP_CONCAT  + GROUP BY + substring_index实现. 考试表 DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `score` int(11) DEFAULT NULL, `class…