select a.receiveID,(a.num - IFNULL(b.num,0)) as num
from (SELECT num,receiveID from dog_giftnumrecord where giftID = 1) as a
left join (SELECT num,receiveID from dog_giftnumrecord where giftID = 2 ) as b
on a.receiveID = b.receiveID

  

--
-- 表的结构 `dog_giftnumrecord`
-- CREATE TABLE IF NOT EXISTS `dog_giftnumrecord` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '道具计数表ID',
`giftID` int(11) NOT NULL COMMENT '道具ID',
`receiveID` int(11) NOT NULL COMMENT '接受者ID',
`type` int(11) NOT NULL COMMENT '道具对应类型(1对应会员,2对应狗狗)',
`num` int(11) NOT NULL COMMENT '道具数量',
`createDate` int(11) NOT NULL COMMENT '创建时间',
`updateDate` int(11) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; --
-- 转存表中的数据 `dog_giftnumrecord`
-- INSERT INTO `dog_giftnumrecord` (`id`, `giftID`, `receiveID`, `type`, `num`, `createDate`, `updateDate`) VALUES
(3, 1, 138, 1, 4, 1413014344, 1413015921),
(4, 1, 139, 1, 2, 1413015942, 1413015944),
(5, 2, 139, 1, 1, 1413015946, NULL),
(6, 1, 140, 1, 3, 1413015961, 1413015963),
(7, 2, 140, 1, 2, 1413015965, 1413015967),
(8, 1, 141, 1, 3, 1413015972, 1413015973),
(9, 1, 142, 1, 1, 1413015978, NULL),
(10, 2, 142, 1, 8, 1413015980, 1413018250);

它的形式是IFNULL(fieldA,fieldB),意义是当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值。

一个关于MYSQL IFNULL的用法的更多相关文章

  1. MySQL IFNULL基本用法

    MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFNULL函数返回第二个参数. 两个参数可以是文字值或表达式. 以下说明了IFNU ...

  2. MySQL IFNULL()函数用法MySQL

    用法说明:IFNULL(expr1,expr2) 如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2. IFNULL()返回一个数字或字符串值,取决于它被使用 ...

  3. MySql IFNULL 联表查询出来的null 如何赋值

    mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0.mysql> ...

  4. mysql group by 用法解析(详细)

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

  5. 对MYSQL IFNULL函数的使用进行了具体的叙述

    下文对MYSQL IFNULL函数的使用进行了具体的叙述.供您參考学习.假设您在MYSQL IFNULL函数使用方面遇到过类似的问题,最好还是一看. MYSQL IFNULL(expr1,expr2) ...

  6. (转载)mysql group by 用法解析(详细)

    (转载)http://blog.tianya.cn/blogger/post_read.asp?BlogID=4221189&PostID=47881614 mysql distinct 去重 ...

  7. (转载)mysql中limit用法

    (转载)http://hi.baidu.com/sppeivan/item/e45179375d6778c62f8ec221   mysql中limit用法 使用查询语句的时候,经常要返回前几条或者中 ...

  8. MYSQL IFNULL使用功能

    稍后的MYSQL IFNULL使用此功能的特定叙事,供大家参考学习,假设你MYSQL IFNULL条款的使用功能类别遇到似问题.最好看. MYSQL IFNULL(expr1,expr2)       ...

  9. mysql 常用命令用法总结积木学院整理版

    一.启动与退出 1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 2.退出MySQL: ...

随机推荐

  1. java面试宝典第一弹

    object类的直接子类有哪些 Boolean Character Character.Subset Class ClassLoader Compiler Enum Math Number Packa ...

  2. 解决SimpleDateFormat线程安全问题

    package com.tanlu.user.util; import java.text.DateFormat; import java.text.ParseException; import ja ...

  3. hdu1394(Minimum Inversion Number)线段树

    明知道是线段树,却写不出来,搞了半天,戳,没办法,最后还是得去看题解(有待于提高啊啊),想做道题还是难啊. 还是先贴题吧 HDU-1394 Minimum Inversion Number Time ...

  4. Java 多线程执行

    背景: 如果一个任务由多个子任务组成,子任务全部执行完成后然后由主线程对所有子任务结果进行封装,可以采用如下几种方式: 1.基于Guava ListenableFuture 进行: 2.基于Futur ...

  5. HDU 6216 A Cubic number and A Cubic Number(数学/二分查找)

    题意: 给定一个素数p(p <= 1e12),问是否存在一对立方差等于p. 分析: 根据平方差公式: 因为p是一个素数, 所以只能拆分成 1*p, 所以 a-b = 1. 然后代入a = b + ...

  6. Android开发——获取微信聊天记录(后台秘密发邮件)

    1. 首先先展示一下效果图: 2. Accessibility机制 Accessibility机制之前已经介绍过了,具体可以查看Accessibility机制实现模拟点击,需要简单的配置(如设置被监听 ...

  7. sed之h;H和:a;N;ba使用精解(对段落进行操作)

    1) 文本: Handle 0x0058, DMI type 20, 19 bytes Memory Device Mapped Address         Starting Address: 0 ...

  8. jquery取当前节点的上级ID

  9. @locked_cached_property ---flask.helpers模块

    源码: class locked_cached_property(object): """A decorator that converts a function int ...

  10. PHP加速之eaccelerator

    eaccelerator简介: eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除. 它还 ...