一 .MySQL的条件判断函数
在MySQL数据库查询的时候,常常会对查询的结果做一些判断,
常见的有:
- 如 sex字段时, 为1表示男,2表示女。
在数据库中存储的是1,2,不是男,女这样的中文, 在展示的时候,不能在性别那一栏展示成1,2而应该是男女。
需要类似于 java中的:
var str=null; //用if 的情况 if(sex==1) { str="男"; }else{ str="女"; } //或者用case switch(sex){ case 1:{ str="男"; break; } case 2:{ str="女"; break; } default:{ } }
- 如 scoreLevel 里面存储的 A,B,C,D,E 这样的,要展示成优,良,中,及格,差等。
3 . 也有如排序时, 将退回的记录放置在最前面,把待审核的,通过的依次往后排这样的。
在MySQL 中,也提供了类似的三个函数。
一.一 MySQL条件判断函数:
下面,分别进行相应的分析。
二. IF() 函数
expr条件, 其中,当expr的返回值是0,或者是null 时,返回false. 其余情况,均返回 true.
二.一 普通展示
select if(1,'true','false'),if(0,'true','false'),if(null,'true','false');
当条件值为0,或者是null时,才返回v2.
二.二 字符串比较
字符串比较函数是 strcmp(s1,s2), 返回值是 -1,0,1.
select strcmp('abc','bcd'),if(strcmp('abc','bcd'),'butong','tong') as '1', strcmp('dbc','dac'),if(strcmp('dbc','dac'),'butong','tong') as '2', strcmp('abc','abc'),if(strcmp('abc','abc'),'butong','tong') as '3';
如果两个字符串相同,比较值为0, 做false, 返回值为 v2.
如果两个字符串不相同,比较值不为0, 返回值为 v1.
二.三 常见例子 性别展示
创建一个 user 表,用 yuejl 数据库。 将yuejl数据库以前的表全部删除。
创建表:
create table user( id int(11) primary key, name varchar(11), sex int(2) );
插入数据: 1为男,2为女。
insert into user values(1,'两个蝴蝶飞',1),(2,'岳泽霖',1),(3,'精小妹',2);
插入成功。
展示数据:
select * from user;
发现,sex 展示的是 1,2。 这谁能看得懂啊。
用 If 函数进行展示,使其变成 ‘男’,‘女’ 样式展示。
select id,name,if(sex=1,'男','女') from user;
可以展示了。 注意,if() 只能判断一次。