一、sql 中if条件的使用
如:查询t_role角色表中是否存在t_user用户表中Joi用户的信息
select distinctrow * from t_user u left join t_role r on r.uid = u.uid and r.state = 1 where if (r.uid is not null , r.name = 'Joi' , 1 <> 1)
这里if的用法和三目运算类似,如果“r.uid is not null”条件满足,说明role表中存在uid相等的用户,然后选中“r.name = 'Joi'”条件,就会从左连接的结果中去查询满足“ r.name = 'Joi' ”的信息;否则会选中” 1 <> 1 “条件(1 <> 1为永假条件)。distinctrow 对行去重,查询唯一的一行数据,对重复行去重。
二、sql 中 “ where 1=1 ” 和 “ where 1<>1 ”的使用
1、“ where 1=1 ”通常用于动态SQL,方便在拼接sql的时候直接拼“ and '条件1' ”,不用判断是否是第一个查询条件而处理要不要加“ and ”的两种情况。
2、“ where 1<>1 ”用于只取结构不取数据的场合。
如:create table user_copy tablespace user_copy as select * from user where 1<>1
建成一个和user表结构完全相同的uer_copy表 ,但不拷贝user表中的数据。
另:
拷贝表
create table_name as select * from Source_table where 1=1;
复制表结构
create table_name as select * from Source_table where 1 <> 1;
3、查询当前表最新一条数据
select * from t__msg order by id DESC limit 1
清风的早晨,希望的开始