mysql
麦田里的虫子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记一次使用mysql变量为分组后的数据配自增id
SELECT (@i:=case when @col3 = col3 then @i+1 else 1 end) as rownum, (@col3:= col3 ), //为变量赋值等于上一个字段的值 col3, col4, idFROM `test_table` , (select @i:=0, @col3:=0) t1 //初始化变量值g...原创 2018-05-17 18:52:04 · 2503 阅读 · 0 评论 -
存储过程调用权限
SQL SECURITY DEFINER 创建存储过程默认调用权限以definer执行,即调用者以存储过程创建者的权限来执行,mysql检查创建者的执行权限 SQL SECURITY INVOKER 存储过程以调用者的权限来执行,mysql检查调用者是否有执行存储过程定义语句的权限ps:以上两种都需要调用者有存储过程的EXECUTE权限...原创 2018-05-21 11:22:54 · 1623 阅读 · 0 评论 -
mysql 以不同编码存储汉字长度测试
1.以utf8编码存储汉字(一个汉字占3字节) 创建测试表CREATE TABLE `dist` ( `id` int(11) NOT NULL AUTO_INCREMENT, `col2` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,) ENGINE=InnoDB AUTO_INCREMEN...原创 2018-05-25 10:00:37 · 616 阅读 · 0 评论 -
MySQL: [Err] 1366 - Incorrect decimal value: '' for column '' at row -1
发生在一次迁移表数据时,原表字段类型为text,目标表字段类型为double, 在转换数据类型时用了cast(col as decimal(20, 2))导致mysql报1366错误, 导入不了数据浏览了很多博客发现只有用 round(value, 2) 转换才可以正常导入,不知道为什么。。...原创 2018-05-28 11:55:02 · 6885 阅读 · 1 评论 -
mysql 临时表使用
语法 : create temporary table temptable_name1.和实体表一样有主键、索引 2.在一次查询中不能同时使用2次临时表 (Can’t reopen table) 3.生命周期只在一个连接中,断开连接临时表会被释放 4.临时表分内存临时表和磁盘临时表,当临时表存储空间大于 ‘tmp_table_size’ 值时,会在磁盘上创建临时表,从而效率下降...原创 2018-05-24 18:43:14 · 2918 阅读 · 0 评论 -
mysql order by limit 的一个坑
需求:一次对表中单行的值进行计数排序发现的问题: 对单个无索引的字段进行排序后,取前3行的数据发现当被排序字段有相同值时并且在limit范围内,取的值并不是正常排序后的值,也就是说,当排在第N行的数据可取key1、 key2 时 , 排序结果可能是key1,也可能是key2。select * from cnt_table order by cnt desc想要的结果 排序...原创 2018-06-08 19:16:26 · 16817 阅读 · 0 评论 -
MySQL的binlog日志
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在...转载 2018-06-19 14:36:28 · 344 阅读 · 0 评论
分享