这里有新鲜出炉的 Mysql 教程,程序狗速度看过来!
MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
下面小编就为大家带来一篇 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 数据方法 (必看) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0816/339349.html