CREATE DATABASE  db_test;

CREATE TABLE `tb1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`rank` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '排名',
`add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '当前时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO tb1(rank, type, add_time) VALUES(19, 1, '2015-03-01');
INSERT INTO tb1(rank, type, add_time) VALUES(10, 1, '2015-04-01');
INSERT INTO tb1(rank, type, add_time) VALUES(12, 1, '2015-05-01'); SELECT A.add_time, A.rank, B.add_time, B.rank, (B.rank - A.rank) AS diff
FROM tb1 A LEFT JOIN tb1 B ON A.type = B.type
WHERE A.add_time='2015-03-01' AND B.add_time = '2015-04-01'; #报错消息
#[Err] 1690 - BIGINT UNSIGNED value is out of range in '(`db_test`.`b`.`rank` - `db_test`.`a`.`rank`)' #解决方式:
SET sql_mode='NO_UNSIGNED_SUBTRACTION';
SELECT A.add_time, A.rank, B.add_time, B.rank, (B.rank - A.rank) AS diff
FROM tb1 A LEFT JOIN tb1 B ON A.type = B.type
WHERE A.add_time='2015-03-01' AND B.add_time = '2015-04-01';

#这样diff的值可以使负数了,具体sql_mode的用法请参考
  http://tech.it168.com/a2012/0822/1388/000001388401.shtml

MySQL不容忽视SQL_MODE的设置的更多相关文章

  1. mysql的sql_mode合理设置

    mysql的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入.在生产环境必须将这个值设置为严格模式,所以 ...

  2. (转)mysql的sql_mode合理设置

    mysql的sql_mode合理设置 目录          http://xstarcd.github.io/wiki/MySQL/MySQL-sql-mode.html http://dev.my ...

  3. MySQL的sql_mode模式说明及设置

    MySQL的sql_mode模式说明及设置 MySQL的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入 ...

  4. MySQL的sql_mode解析与设置,sql文件导入报错解决

    在往MySQL数据库中插入一组数据时,出错了!数据库无情了给我报了个错误:ERROR 1365(22012):Division by 0:意思是说:你不可以往数据库中插入一个 除数为0的运算的结果.于 ...

  5. MySQL的sql_mode解析与设置

    https://blog.csdn.net/hhq163/article/details/54140286 https://blog.csdn.net/ccccalculator/article/de ...

  6. mysql的sql_mode模式

    在oracle或sqlserver中,如果某个表的字段设置成not null,insert或update时不给这个字段赋值,比如下面这样: 表t_test(id,name)中id,name都不允许为空 ...

  7. mysql的sql_mode 模式修改 my.cnf

    1. sql_mode模式 mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql ...

  8. 为什么在有的服务器上禅道、蝉知安装会报错? 之理解MySQL的SQL_MODE

    最近用蝉知的CMS 建站比较多,感觉蛮顺手的,但在给客户安装的时候却会出现安装报错,其原因也很简单 查看了一下他们的install.sql文件中,有些时间字段的默认值是0000-00-00 00:00 ...

  9. mysql5.7 版本中 timestamp 不能为零日期 以及sql_mode合理设置

    ---恢复内容开始--- 摘要: mysql5.7版本相比较之前的版本有很多的特性的增加以及默认配置的改变,在使用中难免会遇到与之前的使用习惯或者项目需求不符的情况.就需要调整相应的变量的值,比如sq ...

随机推荐

  1. 分享一个漂亮按钮插件FancyButtons

    一转眼,2018年的第10天就这样过去了.回看17年,曾经做了些啥都忘记了,就像每一天写日志时的样子(双手放在键盘上,怒着嘴,抬着头,望着天花板), 然后突然记得好像好久没有写随笔了(@_@).自从配 ...

  2. 在windows上搭建镜像yum站的方法

    在windows上搭建镜像yum站的方法(附bat脚本)   分类: 运维基本功,其他   方法一:支持rsync的网站 对于常用的centos.Ubuntu.等使用官方yum源在 http://mi ...

  3. 二十、Mysql 连接的使用

    Mysql 连接的使用 在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN ...

  4. 认识/etc/passwd和/etc/shadow

    认识/etc/passwd和/etc/shadow============================== /etc/passwd [root@aminglinux ~]# head -n1 /e ...

  5. Aliyun ECS简单的安装nginx(1.8.0)

    1. yum install gcc-c++ 2. yum install -y pcre pcre-devel 3. yum install -y zlib zlib-devel 4. yum in ...

  6. web前端使用localstorage、sessionstorage、cookie增删获方法

    今天主要的学习内容是cookie与本地储存的知识, 在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别, ...

  7. tcl之变量-简单变量

  8. thinkphp 3.2.3 - Think.class.php 解析

    class Think { public static function start() { // 注册AUTOLOAD方法 spl_autoload_register('Think\Think::a ...

  9. Python Map, Filter and Reduce

    所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www. ...

  10. day25-python之继承组合

    1.上节回顾 class School: x=1 def __init__(self,name,addr,type): self.Name=name self.Addr=addr self.Type= ...