加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.cn/)- 智能营销、数据计算、数据可视化、负载均衡、研发安全!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql条件查询if case 用法详解

发布时间:2022-06-18 09:02:00 所属栏目:MySql教程 来源:互联网
导读:在mysql条件查询除了使用where之外我们还可以使用像if case进行判断查询了这个比where要高级一些下面我来给大家介绍几个条件查询实例。 where条件查询,代码如下: select * from news where DATE(adddate) between 2011-04-20 - INTERVAL 5 DAY and 2011-04-2
  在mysql条件查询除了使用where之外我们还可以使用像if case进行判断查询了这个比where要高级一些下面我来给大家介绍几个条件查询实例。
 
  where条件查询,代码如下:
 
  select * from news where DATE(adddate) between  
  '2011-04-20' - INTERVAL 5 DAY and '2011-04-20' + INTERVAL 5 DAY
     
  select * from news where DATE(adddate) in ('2011-04-20','2011-04-15','2011-04-25')
  IF条件语句的使用,mysql条件判断语句if的使用,先判断数据库中是否存在是否存在指定值存在就修改不存在就添加.
 
  这里我就用啦mysql存储过程的if语句,代码如下:
 
   DROP  PROCEDURE  IF EXISTS   过程名;
  CREATE   PROCEDURE  过程名(   
      IN     trueName           VARCHAR(100),          
      IN     phone             VARCHAR(100),            
      IN     qqmsn              VARCHAR(100),            
      IN     mail               VARCHAR(100),           
      IN     mac               VARCHAR(100),          
      IN     heartip           VARCHAR(100)            
      )
      NOT DETERMINISTIC
      SQL SECURITY DEFINER
      COMMENT ''
  BEGIN    
  SELECT count(id) INTO @maccount  from `表名` where `表名`.mac=mac; --是否存在此记录
   if (@maccount>0) THEN
   update  `表名`  set `trueName`=trueName,`phone`=phone,`qqmsn`=qqmsn,`mail`=mail,`mac`=mac, --phpfensi.com
  `heart`=`heart`+1,`heartip`=heartip,`heartdatetime`=CURRENT_TIMESTAMP WHERE 表
  名.mac=mac;  
  ELSE
  insert into `表名` (`trueName`,`phone`,`qqmsn`,`mail`,`mac`,`heartip`,`heartdatetime`)VALUES(trueName,phone,qqmsn,mail,mac,heartip,CURRENT_TIMESTAMP);
  end IF;
  END
  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 t2
              where t2.id = substr(t1.area_id, 2))
           else
            (select distinct t3.province
               from countnumber.dbtable_provinceid t3
              where t3.id = substr(t1.area_id, 2))
         end name
    from t_ad_area t1
  在第一个方案的返回结果中,value=compare-value,而第二个方案的返回结果是第一种情况的真实结果,如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL,代码如下:
 
  mysql> SELECT CASE 1 WHEN 1 THEN 'one'
      ->     WHEN 2 THEN 'two' ELSE 'more' END;
          -> 'one'
  mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
          -> 'true'
  mysql> SELECT CASE BINARY 'B'
      ->     WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
          -> NULL

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读