Mysql字段为null的加减乘除运算方式
作者:荒-- 发布时间:2024-01-17 23:35:40
Mysql字段为null的加减乘除运算
数据库表test_table
如下查询:
select
id,
total,
used,
(total - used) as have
from test_table;
查询结果:
解决办法
使用IFNULL 函数来解决NULL值问题
select
id,
IFNULL(total,0) as total,
IFNULL(used,0) as used,
(IFNULL(total,0) - IFNULL(used,0)) as have
from test_table;
查询结果:
数据库关于null不参与运算的坑
举个例子:(阅读时:请记住这个字段以及它的值 )
如果数据库表里字段值为 null 时,那么在写sql语句用这个值去做比较运算时(一般看见 null 或者参数类型为 string 时 也没有人去做加减乘除),除了 is nl 或者 is not nlll 没有其他操作, 有时 字段类型 为 string ,值为 "2" 时, 会用 <> 如果数据库表里字段值为 null 时,那么在写sql语句用这个值去做比较运算时(一般看见 null 或者参数类型为 string 时 也没有人去做加减乘除),除了 is null 或者 is not null 没有其他操作, 有时 字段类型 为 string ,值为 "2" 时, 会用 <> (不等于)] 判断,这都没问题,问题出现在 null 与其他值同时存在这个 当前字段 下,那么用 <> 会造成 mysql 查询不到数据,因为 <>"2" 不会把 null 过滤出去,此时 null 是参与运算的,所以sql语句应当调整为 坑 is null(is not null) and 坑=“2”(坑<>“2”) 这种写法,sql执行之后才会是我们想要的结果。
发生场景
Mybatis框架的动态sql 在写xml映射文件时 比如: <if test=" 坑 = ‘2’ 或(坑 <> ‘2’) > 这种不实时看数据库,脑子里还想着业务需求怎么实现时(一心二用)
其本质还是对于 基础知识 掌握不扎实,所以不断进步的同时,也不要忘了 夯实基础 个人理解: 动态sql最强大的 不是它的语法和格式的优点,首先 它并没有原生sql语句的可读性高,其次 动态sql本质也 仅仅 就起到一个sql语句拼接的作用,它真正强大的点是 <forEach> 这个可以遍历集合的标签,这是原生sql语句无法做到的事情,所以在没有对 集合 进行操作的情况下,尽量用原生sql去做。
来源:https://blog.csdn.net/wangqing84411433/article/details/102653793
猜你喜欢
- 一、Python sys 模块“sys” 是 “system&rdquo
- 1.如果每页都增加打印时间,又如何设置?打印时间的,你可以参考 for(var i=0;i<page.length;i++)
- 在实际的数据库应用中,我们经常遇到这样一个问题,连接到Oracle数据库的用户在作了一次操作后,再也没有后续操作,但却长时间没有和数据库断开
- 为大家提供了两种有效PyCharm激活方法,第一种PyCharm激活方法是直接输入激活码,一般PyCharm激活使用的人多了会被官方封,所以
- 一、字符串(str)字符串转换为列表使用list()方法str_1 = "1235"str_2 = 'zhang
- 实验环境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu)函数介绍:所用函数为six
- 一.需求统计收集各个实例上table的信息,主要是表的记录数及大小。收集的范围是cmdb中所有的数据库实例。二.公共基础文件说明1.配置文件
- 本文实例讲述了python网络编程:socketserver的基本使用方法。分享给大家供大家参考,具体如下:本文内容:socketserve
- 你是怎么把密码储存到数据库里?是以纯文字的方式?你可知道这对安全的危险性?当攻击你网站的人能开启数据库浏览,以纯文字方式存在数据库里的密码一
- 1、要点击链接,然后点击里面的上传tab,不熟悉的人可能找不到这个上传功能 2、插入的就是1个链接,我希望插入链接的同时插入1个图片代表文件
- 导语新的一年迎来了元宵节,元宵佳节在陪伴家人的同时,自然也少不了赏花灯,猜灯谜的项目。当然,受到疫情的影响,许多地方今年无法出门赏花灯,猜灯
- LDAP(Light Directory Access Portocol)是轻量目录访问协议,基于X.500标准,支持TCP/IP。LDAP
- 目录相关背景直方图计算法图像指纹与汉明距离平均哈希法(aHash)感知哈希算法(pHash)dHash算法在网上看到python做图像识别的
- 一:直接把MDB(MDE)文件放到网络中的共享目录中,在客户端做好对应的快捷方式二:数据库折分(菜单:工具,实用工具,折分)成前后台,把后台
- 本文实例讲述了python获取本机mac地址和ip地址的方法。分享给大家供大家参考。具体如下:import sys, socketdef g
- 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
- 最近一直在准备用来面试的几个小demo,为了能展现自己,所以都是亲自设计并实现的,其中一个就是在50行代码内来实现一个贪吃蛇,为了说明鄙人自
- 我就废话不多说了,直接上代码吧!import cv2import osdef save_img(): video_path =
- Mac安装python3环境首先我先给说明一下:我也是初次接触python,有一定的Java基础,对编程语法有一定基础,当然小菜在这里全当小
- 千图成像也就是用N张图片组成一张图片的效果。制作方法有很多的,最常见的如用ps、懒人图云、foto-mosaik-edda这些制作。千图成像