if 和 ifnull
在做判斷時,case 是一種非常好用的方法
記住,沒有else會返回 null
整點資料測試一下
set foreign_key_checks=0;
drop
table
ifexists
`customer`
;create
table
`customer`
(`obj_id`
int(11)
notnull
auto_increment
,`name`
varchar(50
)not
null
,`***`
tinyint(4
)not
null
default
'1',
`email`
varchar
(100
)default
null
,primary
key(
`obj_id`))
engine
=innodb
auto_increment=8
default
charset
=utf8;
insert
into
`customer`
values
('1'
,'風清揚'
,'1'
,'[email protected]');
insert
into
`customer`
values
('2'
,'令狐沖'
,'1'
,'[email protected]');
insert
into
`customer`
values
('3'
,'林青霞'
,'2'
,'[email protected]');
insert
into
`customer`
values
('4'
,'石濤'
,'1'
,null);
insert
into
`customer`
values
('5'
,'黎明'
,'1'
,'[email protected]');
insert
into
`customer`
values
('6'
,'王振'
,'1'
,null);
insert
into
`customer`
values
('7'
,'老頑童'
,'1'
,'[email protected]');
insert
into
`customer`
values
('8'
,'東方不敗'
需要注意
曾經updat語句時,使用case忘記寫else,造成了許多資料成了null
一失足成千古恨,大家慎重慎重
沒有寫else的返回結果
如果,你不僅想判斷某乙個屬性,而是想判斷多個屬性的多個值
就需要 case 多個屬性注意
在mysql中,0或 null意味著假,而其它值意味著真。布林運算的預設真值是1。
if參考
if-or-case in procedure
Mysql 條件判斷Case 使用
select substr t1.area id,1,1 type,substr t1.area id,2 id,case substr t1.area id,1,1 when c then select t2.country from countnumber.dbtable countryid t...
使用控制結構 條件分支語句 CASE語句
當處理多重條件分支時,不僅可以使用if語句,而且可以使用case語句。因為使用case語句更加簡潔,而且執行效率也更好,所以建議使用case 語句。注意 為了避免case not found 例外,在編寫case語句時應該帶有else 子句。declare v deptno emp.deptno t...
Mysql之流程控制語句case
case 要判斷的字段或表示式 when 常量1 then 要顯示的值1或語句1 when 常量2 then 要顯示的值2或語句2 else 要顯示的值n或語句n end部門編號是30,工資顯示為2倍 部門編號是50,工資顯示為3倍 部門編號是60,工資顯示為4倍 否則不變 顯示 部門編號,新工資,...