Mysql中IFNULL与IN操作
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-25 15:30:11 浏览: 评论:0
在mysql中ifnull就是判断null值的字段了,而in就是一个包含的意思就是X里面是不是包括了Y,下面我们一起来看几个实例吧.
Mysql IFNULL操作
项目中用到的,当SQL查询某个字段为空的时候,查询结果中设置其值为默认值,最笨的方法当然是对查询结果进行处理了,遍历查询结果,当为空的时候,设置其值:
- $len=count($result);
- for($i=0;$i<$len ;$i++){
- $var = $result[$i]['name'];
- if(!$var){
- $result[$i]['name']='default_name';
- }
- }
如上办法,不仅费时,还费力,ql语句中直接解决多好啊,SQL中有ISNULL方法,介绍如下:
ISNULL:使用指定的替换值替换 NULL.
语法:ISNULL(check_expression,replacement_value).
参数:check_expression
将被检查是否为 NULL的表达式,check_expression可以是任何类型的.
replacement_value:在 check_expression 为 NULL时将返回的表达式,replacement_value 必须与 check_expresssion 具有相同的类型.
但在Mysql中,isnull只是用来判断是否为空,不能实现替换功能,照上面写的话,会直接报错(Incorrect parameter count in the call to native function 'isnull' Errornumber:1582 ).
那么Mysql中如何实现SQL中的ISNULL方法呢?
IFNULL(check_expression,replacement_value),实现了SQL中的ISNULL方法,见下sql语句:
- mysql> SELECT IFNULL(1,0);
- +-------------+
- | IFNULL(1,0) |
- +-------------+
- | 1 |
- +-------------+
- 1 row in set
由于 expr1 是 1,不为 NULL,所以函数返回 1,我们可以再试下,如果让 expr1 为 NULL,是否能返回第二个参数呢?不妨让 expr1 = 1/0,由于除数为0,结果就为 NULL 了,代码如下:
- mysql> SELECT IFNULL(1/0,'NowaMagic');
- +-------------------------+
- | IFNULL(1/0,'NowaMagic') |
- +-------------------------+
- | www.phpfensi.com |
- +-------------------------+
- 1 row in set
前面的参数为 NULL,就返回第二个参数 www.phpfensi.com 了,这个函数不难理解,为什么要介绍这个函数呢?这是为了后面讲述 MySQL 下的高级黑客技术做的基础知识准备,你可以先试着理解这么一句 hack SQL,代码如下:
UPDATE table SET views = '1' WHERE id = -2441 OR (ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM nowamagic.`tb2` ORDER BY id LIMIT 1,1),2,1))>112)#
Mysql的IN操作,见如下SQL语句:
- select product
- from ProductParameter
- where val = 19116 OR val = 19127 OR val = 19128 OR val = 19119
OR了很多是不是觉得很繁琐呀?用IN就解决了,代码如下:
- select product
- from ProductParameter
- where val in (19116, 19127, 19128, 19119))
Tags: Mysql操作 IFNULL操作
相关文章
- ·Mysql数据库中对表操作sql语句总结(2014-09-23)
- ·mysql PDO 操作类的例子(2014-09-25)
- ·mysql视图学习笔记记录(2014-09-26)
- ·常用的MySQL数据库操作sql语句(2014-09-27)
- ·MySQL给用户加库操作权限sql语句(2014-09-28)
- ·MySql数据库AdoDB函数实例详解(2014-09-29)
- ·mysql 基本操作记录语句(2014-10-02)
- ·mysql你不知道字符串操作函数(2014-10-02)
- ·深入分析mysql日志教程(2015-04-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)