精华内容
下载资源
问答
  • mysqlif语句的使用
    千次阅读
    2021-01-18 19:31:50

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

    更多相关内容
  • Mysqlif既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的...
  • mysql IF语句的3种用法

    千次阅读 2022-07-27 09:24:08
    mysql if语句使用

    1.IF(expr1,expr2,expr3)
    解释:如果表达式expr1=true(expr1 <> 0 and expr1 <> NULL),返回expr2,否则返回expr3,IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
    eg:

    #sex字段为代码项,1男2女
    select if(sex='1','男','女') sex from people;
    #性别代码转换
    update peopleset sex =if(sex = '1','2','1');
    #将people表中的性别进行转换,男变女,女变男
    

    2.IFNULL(expr1,expr2)
    解释:MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数;两个参数可以是文字值或表达式
    eg:

    select IFNULL(sex,'1') sex from people;
    #如果sex为null,那么返回的sex默认为‘1’,否则返回sex
    

    注意:如果查询语句本身的查询结果就为空,那么此时IFNULL就没有任何用处了
    3.IF…ELSE…语句,多用于存储过程
    解释:MySQL流程控制语句之一,当IF中条件condition成立时,执行THEN后的语句、否则判断ELSEIF中的条件成立时,执行其后的语句、否则继续判断其他分支。当所有分支的条件均不成立时,执行ELSE分支。
    condition是一个条件表达式,可以由“=、<、<=、>、>=、!=”等条件运算符组成,并且可以使用AND、OR、NOT对多个表达式进行组合。语法格式如下:

    IF condition1 THEN 
    	...
    	ELSEIF condition1 THEN 
    	...
    	ELSEIF condition1 THEN
    	...
    	ELSE 
    	...	 
    END IF;
    

    eg:
    建立一个存储过程,该存储过程通过学生学号(student_no)和课程编号(course_no)查询其成绩(grade),返回成绩和成绩的等级,成绩大于90分的为A级,小于90分大于等于80分的为B级,小于80分大于等于70分的为C级,依次到E级。
    原文链接

    create procedure dbname.proc_getGrade  
     
    (stu_no varchar(20),cour_no varchar(10))  
     
    BEGIN 
     
    declare stu_grade float;  
     
    select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;  
     
    if stu_grade >= 90 then 
        select stu_grade,'A';  
    elseif stu_grade < 90 and stu_grade >= 80 then 
        select stu_grade,'B';  
    elseif stu_grade < 80 and stu_grade >= 70 then 
        select stu_grade,'C';  
    elseif stu_grade < 70 and stu_grade >= 60 then 
        select stu_grade,'D';  
    else 
        select stu_grade,'E';  
    end if;   
    END
    
    	
    
    展开全文
  • 第六章:MySQLif语句使用

    千次阅读 2021-05-17 11:07:47
    存储过程中作为流程控制语句使用3.实战1.需求:有这样一个表,需要求出第一列大于3的个数,第二列大于3的个数;2.方案1 ,使用sum(if()) ;2.2.方案2 ,使用sum(if()) ; 1.Mysqlif作为表达式用 IF(expr1,expr2,expr...

    1.Mysql的if作为表达式用

    IF(expr1,expr2,expr3)
    

    含义:如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。

    mysql> select *,if(sex=1,"男","女") as new_sex  from student where sex != "";
    +----+------+--------+---------+
    | id | sex  | name   | new_sex |
    +----+------+--------+---------+
    |  1 |    1 | 张三   ||
    |  2 |    2 | 翠花   ||
    |  3 |    1 | 李四   ||
    +----+------+--------+---------+
    3 rows in set (0.00 sec)
    

    备注:当翠花的性别为0时,即便 sex != “”,也查询不出来;不知何故;

    等同于

    mysql> select *, CASE sex WHEN 1 THEN '男' ELSE '女' END as new_sex from student where sex != '';
    +----+------+--------+---------+
    | id | sex  | name   | new_sex |
    +----+------+--------+---------+
    |  1 |    1 | 张三   ||
    |  2 |    2 | 翠花   ||
    |  3 |    1 | 李四   ||
    +----+------+--------+---------+
    3 rows in set (0.00 sec)
    

    2.存储过程中作为流程控制语句使用

    IF ELSE 做为流程控制语句使用

    IF search_condition THEN 
        statement_list  
    [ELSEIF search_condition THEN]  
        statement_list ...  
    [ELSE 
        statement_list]  
    END IF 
    

    备注:了解即可;

    3.实战

    1.需求:有这样一个表,需要求出第一列大于3的个数,第二列大于3的个数;

    表信息如下:

    mysql> select * from data;
    +-----------+-----------+
    | data_co_1 | data_co_2 |
    +-----------+-----------+
    |      1.00 |      0.50 |
    |      0.90 |      1.50 |
    |      3.00 |      0.70 |
    |      4.00 |      3.00 |
    |      0.01 |     80.00 |
    |    100.00 |      0.92 |
    |      0.70 |      0.25 |
    +-----------+-----------+
    7 rows in set (0.00 sec)
    

    2.方案1 ,使用sum(if()) ;

    mysql> select sum(if (data_co_1 > 3,1,0)) count1,sum(if (data_co_2 > 3,1,0)) count2 from data;
    +--------+--------+
    | count1 | count2 |
    +--------+--------+
    |      2 |      1 |
    +--------+--------+
    1 row in set (0.00 sec)
    

    2.2.方案2 ,使用sum(case when) ;

    mysql> select sum(case when data_co_1 >3 then 1 else 0 end) count1,sum(case when data_co_2 >3 then 1 else 0 end) count2 from data;
    +--------+--------+
    | count1 | count2 |
    +--------+--------+
    |      2 |      1 |
    +--------+--------+
    1 row in set (0.00 sec)
    
    展开全文
  • mysql if语句使用,10多年工作总结
  • MySQL if语句的三种用法

    万次阅读 多人点赞 2021-04-06 19:05:01
    1.IF表达式 IF(expr1,expr2,expr3); 如果expr1为TRUE,则IF()返回值为expr2,否则返回值为expr3 update salary set sex =if(sex = '男','女','男') #这是leetcode上的一道题,将...3.IF…ELSE…语句 IF search_con

    1.IF表达式

    IF(expr1,expr2,expr3);
    

    如果expr1为TRUE,则IF()返回值为expr2,否则返回值为expr3

    update salary set sex =if(sex = '男','女','男')
    #这是leetcode上的一道题,将salary表中的性别进行转换,男变女,女变男
    

    性别变更

    2.IFNULL语句

    IFNULL(expr1,expr2)
    

    假如expr1不为null,则返回expr1,否则返回expr2

    3.IF…ELSE…语句

    IF search_condition THEN
    	statement_list
    ELSE
    	statement_list
    END IF;
    

    search_condition表示条件,如果成立时执行THEN后面的statement_list语句,否则执行ELSE后面的statement_list语句。
    search_condition是一个条件表达式,可以由条件运算符组成,也可以使用AND、OR、NOT对多个表达式进行组合

    展开全文
  • 主要介绍了mysql存储过程之if语句用法,结合实例形式详细分析了mysql存储过程中if语句相关原理、使用技巧与操作注意事项,需要的朋友可以参考下
  • Mysql数据库if语句使用

    千次阅读 2021-03-02 11:50:44
    mysqlif 既可以作为表达式用,也可以在存储过程中作为流程控制语句使用if 表达式作为表达式的 IF 也可以使用 CASE WHEN 来实现:IFNULL(expr1,expr2)IF ELSE 作为流程控制语句使用 if 表达式 IF(expr1,expr2,...
  • mysqlif语句怎么写

    千次阅读 2021-01-20 16:27:08
    1. mysqlif语句的expr2中怎么写入逗号mysql手册中如是说:IF(expr1,expr2,expr3)如果 expr1 为真(expr1 0 以及 expr1 NULL),那么 IF() 返回 expr2,否则返回 expr3。IF() 返回一个数字或字符串,这取决于它被使用...
  • mysql if语句

    万次阅读 2018-06-13 22:33:59
    MySQL IF语句允许您根据表达式的某个条件或值结果来执行一组SQL语句。 要在MySQL中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回TRUE,FALSE或NULL,这三个值之一。请注意,有一个IF...
  • mysql条件判断语句if使用

    千次阅读 2021-02-01 19:52:07
    mysql条件判断语句if的使用:先判断数据库中是否存在是否存在指定值...这里我就用啦mysql存储过程的if语句DROP PROCEDURE IF EXISTS 过程名;CREATE PROCEDURE 过程名(IN trueName VARCHAR(100),IN phone VARCHAR(100)...
  • MySQL if 语句用法

    千次阅读 2018-07-12 18:02:27
    原文:点击打开链接mysql if 三种用法:1.IF(expr1,expr2,expr3);select *,if(sva=1,"男","女") as ssva from taname where sva != ""2.IFNULL(expr1,expr2)假如expr1 不为 NULL,则 ...
  • DROP TABLE IF EXISTS t_test; CREATE TABLE t_test ( bs bigint(20) NOT NULL auto_increment, username varchar(20) NOT NULL, password varchar(20) default NULL, remark varchar(200) default NULL, ...
  • if语句做为表达式使用,语法格式如下: IF(expr1,expr2,expr3) 说明: 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值...
  • MySQLif,case语句使用总结

    千次阅读 2021-01-27 15:12:42
    Mysqlif既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:IF表达式IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为...
  • mysql多个if语句

    千次阅读 2021-04-19 04:26:51
    Mysql 语句 有多个条件 查询所有 返回符合条件最多的一条这边先给你提供一个动态SQLselect*fromtablewhere1=1 //这一步是针对所有条件均未满足(where后必须跟子句)if(name != "" and name!=null){ and name=条件一}...
  • mysql if 条件语句用法

    万次阅读 多人点赞 2020-02-24 17:20:27
    IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3 如下: SELECT IF(TRUE,1+1,1+2); -> 2 SELECT IF(FALSE,1+1,1+2); -> 3 SELECT...
  • MySQL IF语句在UPDATE语句的触发器内

    千次阅读 2021-02-07 13:18:25
    它似乎是UPDATE触发器 . 不是吗?如果是这样,请尝试此代码(有一些语法错误) -UPDATEtbl_product_typesSETUpdatedTS = ...IF (SELECT length(Old.ProductRef) > 0) THEN-- We have already stored the product r...
  • mysql if语句的嵌套

    万次阅读 2018-03-15 10:08:27
    IF(expr1,expr2,expr3)expr1: 判断条件如果为真,取值expr2否则取expr3exam: SELECT​...​IF ( INVALID = 0, IF(INVOICE_TYPE IN (0, 1, 4, 5), (CARGO_AMOUNT_DISCOUNT / (1 + CARGO_TAX_RATE)), CARGO_PRICE_...
  • MySQL IF ELSEIF ELSE基于多个表达式执行语句。其语法如下-IFexpressionTHENstatements;ELSEIFelseif-expressionTHENelseif-statements;...为了演示IF ELSEIF ELSE语句MySQL存储过程中的使用,我们基于以下名...
  • mysql 触发器 if语句用法

    千次阅读 2021-01-18 19:31:54
    BEGINDECLAREi_jcidVARCHAR(50);DECLAREi_jkcxVARCHAR(50);DECLAREi_jksjVARCHAR(50);DECLAREi_resultVARCHAR(100)default... END if语句应该怎么写,哪位大神给指导一下,在线等,我上面这样写是有问题的,求指导 展开
  • MySQL if函数使用详解

    万次阅读 2022-02-26 16:52:40
    MySQL条件判断,MySQL if()函数,MySQL中的if()函数。
  • MySQL中的if语句使用

    千次阅读 2018-10-29 23:23:59
    MySQl中的if使用: IF表达式 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 &lt;&gt; 0 and expr1 &lt;&gt; NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或...
  • MySQL存储过程语句(变量,if,while)的使用
  • 不要搞混了 1、IF EXISTS(结果集)是指如果存在结果集(结果集的记录数...IF 条件 THEN 语句; IF 条件 THEN 语句; ELSEIF 条件 THEN 语句; ELSE 语句; END IF; CASE语句 CASE语句中,条件为真,则执行SQL语句
  • Mysql数据库if语句case when使用

    千次阅读 2016-07-03 15:28:37
    Mysqlif既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 NULL),则 IF()的返回值为expr2; 否则返回值则为 ...
  • MySQL if语句

    千次阅读 2018-10-10 10:43:18
    IF(expr1,expr2,expr3) expr1: if的条件,eg: id&gt;3 expr2: 符号条件时返回的值 expr3: 不符号条件时返回的值 案例 这里要注意的是如果你这样写IF(id&lt;50,1,0),当不符合条件的时候是会返回0的 select IF...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 329,489
精华内容 131,795
关键字:

mysqlif语句的使用

mysql 订阅