mysql 转换NULL数据方法(必看)

使用mysql查询数据库,当执行left join时,有些关联的字段内容是NULL,因此获取记录集后,需要对NULL的数据进行转换操作。

本文将提供一种方法,可以在查询时直接执行转换处理。使获取到的记录集不需要再进行转换。

mysql提供了IFNULL函数

IFNULL(expr1, expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则返回expr2

实例:

user表结构和数据

+----+-----------+
| id | name   |
+----+-----------+
| 1 | Abby   |
| 2 | Daisy   |
| 3 | Christine |
+----+-----------+

user_lastlogin表结构和数据

+-----+---------------+
| uid | lastlogintime |
+-----+---------------+
|  1 |  1488188120 |
|  3 |  1488188131 |
+-----+---------------+

查询user的name与lastlogintime

mysql> select a.id,a.name,b.lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid;

+----+-----------+---------------+
| id | name   | lastlogintime |
+----+-----------+---------------+
| 1 | Abby   |  1488188120 |
| 2 | Daisy   |     NULL |
| 3 | Christine |  1488188131 |
+----+-----------+---------------+

因为id=2的用户未登入过,所以在user_lastlogin表中没有记录。因此lastlogintime为NULL。

使用IFNULL把NULL转为0

IFNULL(lastlogintime, 0)
mysql> select a.id,a.name,IFNULL(b.lastlogintime,0) as lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid;
+----+-----------+---------------+
| id | name   | lastlogintime |
+----+-----------+---------------+
| 1 | Abby   |  1488188120 |
| 2 | Daisy   |       0 |
| 3 | Christine |  1488188131 |
+----+-----------+---------------+

以上这篇mysql 转换NULL数据方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL中对于NULL值的理解和使用教程

    NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串''的一样的东西.不是这样的!例如,下列语句是完全不同的: mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (""); 两个语句把值插入到phone列,但是第一个插入一个NULL值而第二个插入一个空字符串.第一个的含义可以认为是"电话号码不

  • 详解MySQL中的NULL值

    我们已经看到使用WHERE子句的SQL SELECT命令来从MySQL表获取数据.但是,当我们试图给的条件比较字段或列的值为NULL,它不能正常工作. 为了处理这种情况,MySQL提供了三大运算符 IS NULL: 此运算符返回true,当列的值是NULL. IS NOT NULL: 运算符返回true,当列的值不是NULL. <=> 操作符比较值(不同于=运算符)为ture,即使两个NULL值 涉及NULL条件是特殊的.不能使用 =NULL 或 !=NULL 寻找NULL值的列.这种比较总是

  • mysql 转换NULL数据方法(必看)

    使用mysql查询数据库,当执行left join时,有些关联的字段内容是NULL,因此获取记录集后,需要对NULL的数据进行转换操作. 本文将提供一种方法,可以在查询时直接执行转换处理.使获取到的记录集不需要再进行转换. mysql提供了IFNULL函数 IFNULL(expr1, expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则返回expr2 实例: user表结构和数据 +----+-----------+ | id | name | +----+------

  • mysql 找回误删表的数据方法(必看)

    有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可. 要是没有备份 可能就会比较麻烦,找回数据的成本也是非常之高的. 下面介绍下 mysqlbinlog找回备份时间点之后的数据的办法: 做个简单的实验,将mysql的表数据删除之后,然后用mysqlbinlog 找回刚才删除的表的数据. app表的创建时间和数据的插入: 2013-02-04 10:00:00 原理: mysqlbinlog 前提: mysql开启了bin log

  • mysql 列转行,合并字段的方法(必看)

    数据表: 列转行:利用max(case when then) max---聚合函数 取最大值 (case course when '语文' then score else 0 end) ---判断 as 语文---别名作为列名 SELECT `name`, MAX( CASE WHEN course='语文' THEN score END ) AS 语文, MAX( CASE WHEN course='数学' THEN score END ) AS 数学, MAX( CASE WHEN cour

  • ajax调用返回php接口返回json数据的方法(必看篇)

    php代码如下: <?php header('Content-Type: application/json'); header('Content-Type: text/html;charset=utf-8'); $email = $_GET['email']; $user = []; $conn = @mysql_connect("localhost","Test","123456") or die("Failed in conn

  • Json_decode 解析json字符串为NULL的解决方法(必看)

    从APP端或从其他页面post,get过来的数据一般因为数组形式.因为数组形式不易传输,所以一般都会转json后再发送.本以为发送方json_encode(),接收方json_decode(),就解决的问题,结果发现,json_decode()后是NULL. 一般会反应是少了一个参数"true",但是回去看就是 json_decode($data,true); 那怎么还会是NULL呢?难道是编码,不会啊,接收后直接打印是一个完整json字符串的形式,在网上json解析网站,也是可以正常

  • php使用PDO从数据库表中读取数据的实现方法(必看)

    创建了PDO对象后,就可以通过创建的对象进行数据检索了.查询数据我们可以使用PDO::query()方法,具体代码如下: try{ $pdo=new PDO('mysql:host=localhost;dbname=alpha','root','password'); }catch(PDOException $e){ echo "数据库连接失败,原因是:".$e->getMessage(); } //从数据库中选择数据,并将结果赋予一个变量,testtable为数据库表 $res

  • SpringMVC 数据校验方法(必看篇)

    数据校验在web应用里是非常重要的功能,尤其是在表单输入中.在这里采用Hibernate-Vapdator进行校验,该方法实现了JSR-303验证框架支持注解风格的验证. 一.导入jar包 若要实现数据校验功能,需要导入必要的jar包,主要包括以下几个: classmate-1.3.1.jar hibernate-vapdator-5.4.1.Final.jar hibernate-vapdator-annotation-processor-5.4.1.Final.jar hibernate-v

  • 使用PHPExcel实现数据批量导出为excel表格的方法(必看)

    首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)! <a href="./Process1.php" rel="external nofollow" >导出excel表格</a> 后台Process.php页面 /** * 批量

  • js遍历获取表格内数据的方法(必看)

    本文将介绍如何使用js获取表格内某一单元格的内容,表格由table,tr,td等html标记组成.table表示表格,tr表示行,td表示行中列. 1.一般的表格结构如下 <table> <tr> <td>id</td> <td>name</td> </tr> <tr> <td>1</td> <td>fdipzone</td> </tr> <tr

  • Java的基本数据类型和运算方法(必看篇)

    编码 ASCII--0~127 65-A 97-a 西欧码表---ISO-8859-1---0-255---1个字节 gb2312----0-65535---gbk---2个字节 Unicode编码体系---utf-8---3个字节 中 f bit位 Byte字节 1Byte = 8bit 1KB=1024B MB GB TB PB---计算机中存储单位 常量 整数常量---所有的整数 3,99,107 小数常量---所有的小数 3.5 100.9 字符常量---用单引号将一个字母.数字.符号标

随机推荐