mysql条件查询if case 用法详解
2019/10/10/17:35:57 阅读:1869 来源:谷歌SEO算法 标签:
百度K站
在mysql条件查询除了使用where之外我们还可以使用像if case进行判断查询了这个比where要高级一些下面我来给大家介绍几个条件查询实例。
where条件查询,代码如下:
- select*fromnewswhereDATE(adddate)between
- '2011-04-20'-INTERVAL5DAYand'2011-04-20'+INTERVAL5DAY
- select*fromnewswhereDATE(adddate)in('2011-04-20','2011-04-15','2011-04-25')
IF条件语句的使用,mysql条件判断语句if的使用,先判断数据库中是否存在是否存在指定值存在就修改不存在就添加.
这里我就用啦mysql存储过程的if语句,代码如下:
- DROPPROCEDUREIFEXISTS过程名;
- CREATEPROCEDURE过程名(
- INtrueNameVARCHAR(100),
- INphoneVARCHAR(100),
- INqqmsnVARCHAR(100),
- INmailVARCHAR(100),
- INmacVARCHAR(100),
- INheartipVARCHAR(100)
- )
- NOTDETERMINISTIC
- SQLSECURITYDEFINER
- COMMENT''
- BEGIN
- SELECTcount(id)INTO@maccountfrom`表名`where`表名`.mac=mac;--是否存在此记录
- if(@maccount>0)THEN
- update`表名`set`trueName`=trueName,`phone`=phone,`qqmsn`=qqmsn,`mail`=mail,`mac`=mac,--phpfensi.com
- `heart`=`heart`+1,`heartip`=heartip,`heartdatetime`=CURRENT_TIMESTAMPWHERE表
- 名.mac=mac;
- ELSE
- insertinto`表名`(`trueName`,`phone`,`qqmsn`,`mail`,`mac`,`heartip`,`heartdatetime`)VALUES(trueName,phone,qqmsn,mail,mac,heartip,CURRENT_TIMESTAMP);
- endIF;
- END
case条件语句,代码如下:
- selectsubstr(t1.area_id,1,1)type,
- substr(t1.area_id,2)id,
- casesubstr(t1.area_id,1,1)
- when'c'then
- (selectt2.country
- fromcountnumber.dbtable_countryidt2
- wheret2.id=substr(t1.area_id,2))
- else
- (selectdistinctt3.province
- fromcountnumber.dbtable_provinceidt3
- wheret3.id=substr(t1.area_id,2))
- endname
- fromt_ad_areat1
在第一个方案的返回结果中,value=compare-value,而第二个方案的返回结果是第一种情况的真实结果,如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL,代码如下:
- mysql>SELECTCASE1WHEN1THEN'one'
- ->WHEN2THEN'two'ELSE'more'END;
- ->'one'
- mysql>SELECTCASEWHEN1>0THEN'true'ELSE'false'END;
- ->'true'
- mysql>SELECTCASEBINARY'B'
- ->WHEN'a'THEN1WHEN'b'THEN2END;
- ->NULL
热门评论