ifnull()方法的用法
一般我们在使用ifnull()方法的时候,都是类似下面的语句:
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值。
if和isnull结合使用
有的时候我们会用到下面的句子
IF(ISNULL(X),expr1,expr2)
这样,如果x为null,则返回expr1,如果x不为null,则返回expr2。
搜索时附加筛选条件
写网站的时候遇到了筛选功能,搜索出来的信息需要按照用户的要求筛选。比如搜索job的时候按照城市筛选。
一种方法是写两个sql,一个是有筛选功能,一个是没有筛选功能。
但是这样的话会遇到一个问题,如果添加筛选条件,比如公司,就需要2*2=4个sql,这样会爆炸增长
所以我用了if和isnull的结合
Mysql
表的结构:
语句和结果:
- 不为null(有筛选城市的条件,只需要城市符合的数据)
SELECT * FROM jobcoming.job_exist t where date(t.ddl) > curdate() and
t.cities like if(ISNUll('sh'),CONCAT('%','','%'),CONCAT('%','sh','%'))