mysql条件查询if case用法

   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,

  `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

时间: 2024-09-03 18:28:29

mysql条件查询if case用法的相关文章

mysql操作查询结果case when then else end用法举例

    转载来自:http://blog.sina.com.cn/s/blog_7c5d61f30101cx0q.html 举例1: 使用该查询,得出iFavoriteID,iFavUserType ,cUser,iArticleID,dFavoriteTime五个字段的值: SELECT iFavoriteID,CASE WHEN iFavUserType = 0 THEN '新闻管理员'WHEN iFavUserType = 1 THEN '商家'WHEN iFavUserType = 2

mysql-Mysql 条件查询时记录的唯一id,有多个id并且已知的,该怎么查询

问题描述 Mysql 条件查询时记录的唯一id,有多个id并且已知的,该怎么查询 已知id的值,比如 int pId[100]; CString sql; sql.Format("select * from table_name where id!=%d and id!=%d and id!=%d .....",pId[0],pId[1],pId[2],.....); 难道是这样写吗? 解决方案 mysql多ID查询查询多个ID的数据 解决方案二: 用not in试试,这么写; sel

MySQL子查询用法实例分析_Mysql

本文实例讲述了MySQL子查询用法.分享给大家供大家参考,具体如下: 假设表my_tbl包含三个字段a,b,c:现在需要查询表中列a的每个不同值下的列b为最小值的记录量. 比如表记录为: a  b  c 1  3  'cd' 2  3  'nhd' 1  5  'bg' 2  6  'cds' 1  7  'kiy' 3  7  'vsd' 3  8  'ndf' 希望得到结果为: a  b  c 1  3  'cd' 2  3  'nhd' 3  7  'vsd' (1) 其中一个做法:先查出

MySQL切分查询用法分析_Mysql

本文实例讲述了MySQL切分查询用法.分享给大家供大家参考,具体如下: 对于大查询有时需要'分而治之',将大查询切分为小查询: 每个查询功能完全一样,但只完成原来的一小部分,每次查询只返回一小部分结果集. 删除旧的数据就是一个很好地例子.定期清理旧数据时,如果一条sql涉及了大量的数据时,可能会一次性锁住多个表或行,耗费了大量的系统资源,却阻塞了其他很多小的但重要的查询.将一个大得DELETE语句切分为较小的查询时,可以尽量减少影响msql的性能,同时减少mysql复制造成的延迟. 例如,每个月

不同条件查询-mysql 根据不同的条件查询出想要的结果,以List或Bean等形式返回。在线等,谢谢啦!!

问题描述 mysql 根据不同的条件查询出想要的结果,以List或Bean等形式返回.在线等,谢谢啦!! 有一张mySql表:tb_products,表结构如下图: 如何根据条件查询出结果集!条件如下图: 上图中查询条件可能有的为空!! Jvava 后台代码:用这种工具类:QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()); 如何继续写呢??以List或Bean等形式返回.

mysql怎么查询不知道是不是追加条件

问题描述 mysql怎么查询不知道是不是追加条件 不知道后面是否追加条件的时候,mysql怎么样写查询语句???? 解决方案 可以先加上 "where 1=1 " 如果有条件,都是 and xxx>xxx 这样. 即使没有条件,也成立 解决方案二: 其实,使用1=1不是很好.但是写的时候方便.如果可以的话,尽量别写这样.

mysql常用基础操作语法(五)--对数据的简单条件查询【命令行模式】

1.单条件查询:select 字段名 from tablename where 条件: 2.简单多条件查询,使用&&或者between and等: 3.is null和is not null查询,这里要注意null不是空字符串不是0: 4.in和not in查询,相当于是用or把in后边的集合元素连起来.注意如果in后边带的集合中存在null,那么不会影响结果,但not in后边集合中有null,就不会查处任何结果,not in也查不出null: 5.like模糊查询(不仅适用字符串):

mysql判断查询结果是否存在,存在输出1不存在输出0

问题描述 mysql判断查询结果是否存在,存在输出1不存在输出0 IF EXISTS (SELECT * FROM table WHERE condition) SELECT '1' ELSE SELECT '0'; 类似这种语义,mysql中可以实现吗 解决方案 IFNULL(a,b) 如果a不是NULL IFNULL()返回a,否则它返回b 或者 set @c = (SELECT count(*) as c FROM table WHERE condition) if(@c>0) then

用distinct在MySQL中查询多条不重复记录值[转]

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让 我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花 了很多时间来研究这个问题,网上也查不到解决方案,期间把朋友拉来帮忙,