MySQL if判斷語句以及條件查詢語句


一、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   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM