MySQL中查询字段为空或者为null的方法

目录
  • MySQL查询字段为空或者为null
    • 判断为null
    • 判断为空或空格
  • MySQL查询字段为空(null)时设置默认值
  • 总结

MySQL查询字段为空或者为null

判断为null

select * from table where  column is null;

不为null:

select * from table where  column is not null;

判断为空或空格

select * from table where column ='';

注:不管是空还是其中有空格都可以显示出来。

补充:

  • 如果是excel导入mysql中创建临时表需要使用xls格式
  • 如果excel有字段为null,导入的时候转成字符 ‘null’

MySQL查询字段为空(null)时设置默认值

根据项目需要,在数据库查询时,可能需要对查询结果进行封装,为了避免前端抛出空指针异常(NullPointException)对于没有值的字段也不能返回空,而应该赋一个默认值,在使用 MYSQL 作为数据库时,可使用 IFNULL() 方法来实现这一功能

代码示例

有一用户表

CREATE TABLE `user` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id 主键',
  `user_name` varchar(30) DEFAULT NULL COMMENT '用户名',
  `user_passcode` varchar(100) DEFAULT NULL COMMENT '登陆密码',
  `user_email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `user_insert_time` varchar(30) DEFAULT NULL COMMENT '用户注册时间',
  `user_update_time` varchar(30) DEFAULT NULL COMMENT '用户更新时间',
  `user_status` tinyint(4) DEFAULT '1' COMMENT '用户账号状态,1正常(默认),2禁止登陆',
  `user_version` int(10) unsigned DEFAULT '1' COMMENT '版本控制字段(默认1)',
  `user_del` tinyint(4) DEFAULT '0' COMMENT '逻辑删除字段,0正常(默认),1删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

查询用户信息:

SELECT 
    IFNULL(u.id,0), IFNULL(u.user_name,''), IFNULL(u.user_passcode,''), 
    IFNULL(u.user_email,'')
FROM `user` u
LIMIT 0,10

IFNULL(exp1,exp2): 当表达式1(exp1) 值为空(null)时,方法返回表达式2(exp2)的值

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL对JSON类型字段数据进行提取和查询的实现

    目录 前言 1. 问题现象 2. 解决方案 3. JSON数据查询 3.1 一般基础查询操作 3.2 一般函数查询操作 4. JSON数据新增更新删除 前言 昨天上线后通过系统报警发现了一个bug,于是紧急进行了回滚操作,但是期间有用户下单,数据产生了影响,因此需要排查影响了哪些订单,并对数据进行修复. 1. 问题现象 由于bug导致了订单表的customer_extra_info字段的hasFreightInsurance误更新成了“是”,因此需要查询回滚前一共有多少被误更新为“是”的订单,如

  • MySQL日期及时间字段的查询

    目录 1.日期和时间类型概览 2.日期和时间相关函数 3.日期和时间字段的规范查询 前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询.关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法. 1.日期和时间类型概览 MySQL支持的日期和时间类型有 DATETIME.TIMESTAMP.DATE.TIME.YEAR , 几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可. 2.日期和时间相关

  • mysql如何对已经加密的字段进行模糊查询详解

    目录 问题:但是加密之后我们怎么来查询呢? 1.了解HEX 函数与UNHEX 函数 2.了解AES_ENCRYPT函数与AES_DECRYPT函数 java工具类AES加解密同步使用 总结 场景:在模糊查询电话号码的时候,发现电话号码是进行加密过的,而传进来的参数却是明文的 PS:作为一个合格的程序员对用户的一些敏感数据都要进行加密处理操作 比如:姓名.手机号.身份证号等等. 问题:但是加密之后我们怎么来查询呢? 1.客户端一般是这样的 1.了解HEX 函数与UNHEX 函数 HEX 函数:将一

  • Mysql如何在select查询时追加(添加)一个字段并指定值

    目录 在select查询时追加(添加)一个字段并指定值 使用select查询时,在查询结果中增加一个字段并指定固定值 在select查询时追加(添加)一个字段并指定值 在特定时候,在 mysql 的查询结果中我们需要追加一个字段来实现某些特定的功能,这时我们可以用到以下语法来实现 值 as 字段 比如我们需要给这个查询结果追加一个 xx 字段并赋值为 null ,可以这样实现 select *, null as xx from topic; 使用select查询时,在查询结果中增加一个字段并指定

  • mysql根据json字段内容作为查询条件(包括json数组)检索数据

    最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的json数据,遇到想根据里面的json的字段内容作为条件查询的情况 mysql根据json字段的内容检索查询数据 使用 字段->'$.json属性'进行查询条件 使用json_extract函数查询,json_extract(字段,"$.json属性") 根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性'

  • MySql如何将查询的出来的字段进行转换

    目录 MySql将查询的出来的字段进行转换 MySql将字符串转成数字 1.直接用加法 2.使用函数 MySql将查询的出来的字段进行转换 使用mysql 查询出来的字段并不是前端想要的,可能需要一些转换,那么怎么办呢 我们可以使用case a when 条件 then ‘输出’end来解决 1表示渡口工作人员,2表示微信用户,那么我们查询之后想把1和2转化成相应的文字说明 select *, (case when ts.reciever like '%,%' then '全部人员' when

  • MySQL中查询字段为空或者为null的方法

    目录 MySQL查询字段为空或者为null 判断为null 判断为空或空格 MySQL查询字段为空(null)时设置默认值 总结 MySQL查询字段为空或者为null 判断为null select * from table where  column is null; 不为null: select * from table where  column is not null; 判断为空或空格 select * from table where column =''; 注:不管是空还是其中有空格都

  • mysql中查询字段为null的数据navicat问题

    目录 mysql查询字段为null的数据navicat mysql中字段为空,null值遇到坑了 解决办法 总结 mysql查询字段为null的数据navicat 查询数据为null的数据varchar字段 默认为(null)所以查询的语句是 select  * from cases where name is null    查询字段为null select  * frim cases where name is not null   查询字段不为null mysql中字段为空,null值遇到

  • MySQL中查询json格式的字段实例详解

    工作开发过程遇到一个需求:需要动态存储客户的姓名.手机号码.身份证.证件类型,意思是可能前端会传一个人或二个人或者三个人的信息是动态的不固定人数的四个字段(姓名.手机号码.身份证.证件类型). 前端页面如下: 我是使用List来接收前端传过来 json,mysql 用 varchar 来保存这个 json 数组 [{ "cardId": "110101199003072316", "cstName": "张双儿1", &quo

  • 查找MySQL中查询慢的SQL语句方法

    如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这

  • MySQL中JSON字段数据类型详解

    目录 前言 创建JSON值 搜索JSON类型数据 在 JSON 和非 JSON 值之间转换 JSON 值的汇总 总结 前言 JSON 类型是从 MySQL 5.7 版本开始支持的功能,MySQL 支持由RFC 7159定义的本机JSON数据类型,该类型可有效访问 JSON(JavaScript 对象 table 示法)文档中的数据.与将 JSON 格式的字符串存储在字符串列中相比,JSON数据类型具有以下优点: 自动验证存储在JSON列中的 JSON 文档.无效的文档会产生错误. 优化的存储格式

  • MySQL中查询、删除重复记录的方法大全

    前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Titl

  • MySQL中查询某一天, 某一月, 某一年的数据代码详解

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天(包括昨天和今天的数据) SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 昨天(只包括昨天) SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1; -- 同理,查询前天的就是-2 近7天 SELECT * FROM 表名 where DATE_SUB(CURD

  • MySQL中组合字段之concat()

    目录 1.简介 2.正文 2.1 字段拼接 2.2 字段执行算术计算 1.简介 MySQL是关系型数据库,我们在使用的时候往往会将对象的属性映射成列存储在表中,因此查询的到的结果在不做任何处理的情况下,也是一个个单独的属性:如果我们希望在MySQL中查询返回的结果集,能够将多个字段(列)的值组合起来返回.或者经过特定的计算后再返回,就可以使用MySQL提供的字段计算功能. 字段计算经常会用到如下两种: 字段拼接 字段执行算术计算 2.正文 MySQL中实现的字段组合都可以在客户机中完成,但是直接

  • MySQL中查询当前时间间隔前1天的数据

    1.背景 实际项目中我们都会遇到分布式定时任务执行的情况,有时定时任务执行的时候如果查询的数据量比较大时,我们会选择执行时间间隔几天前的数据筛选后进行执行. 避免执行全量的数据导致内存占用过大或执行时间过长导致OOM等问题. 这里我们就会用到SQL来过滤当前时间间隔1天或几天的查询. 1.1.查询SQL语句 这里用到一张talk_course表作为查询sql语句的执行表单,表的字段如下: 表中大致有如下几条测试数据: 查询距离当前执行时间前一天的SQL语句如下: # 查询距离当前时间前1天的数据

  • mysql中datetime字段建立索引并比较大小详解

    目录 1.问题背景 2.优化过程 补充:Mysql 时间Datetime 索引不生效问题 总结 1.问题背景 最近测试库查询一个表的数据,需要用到唯一的一个日期类型字段作为 where 的子查询(查询当天的数据),就正常写了个这样的 SQL,具体的表名我就不写了: # create_time 是 datetime 类型 select * from ${tablename} where date(create_time)='20220919' limit 20; 其中字段的值样本如下: 我知道我写

随机推荐