mysql中判断条件

  • if / case when 判断
 SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END; -> "one"
    SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END; -> "true"
    SELECT CASE BINARY "B" WHEN "a" THEN 1 WHEN "b" THEN 2 END; -> NULL

    (1) CASE VALUE WHEN [compare-VALUE] THEN result [WHEN [compare-VALUE] THEN result ...] [ELSE result] END //这个我还没想到咋用,知道的可以留言交流,
    (2) CASE WHEN [CONDITION] THEN result [WHEN [CONDITION] THEN result ...] [ELSE result] END //这个面试时被人问到了,可以用作条件判断
  • ISNULL 判断
ISNULL(expr) 的用法:
    如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。

    IFNULL(expr1,expr2)的用法:
    假如expr1   不为   NULL,则   IFNULL()   的返回值为   expr1;
    否则其返回值为   expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
时间: 2024-08-26 20:55:49

mysql中判断条件的相关文章

mysql中判断字段为空

mysql中判断字段为null或者不为null 在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null select nulcolumn from table; if nuncolumn is null then select 1; else select 2; end if;

mysql中判断记录是否存在方法比较【转】

把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入. 我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数.

关于mysql中or条件和索引

参考boke:http://blog.csdn.net/hguisu/article/details/7106159 1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行.(在mysql5.6下测试如此) CREATE TABLE IF NOT EXISTS `a` ( `id` int(1) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `aNum` char(20) DEFAULT NULL, PRIM

MySQL中判断日期间隔的方法

MySQL中查询一定时间间隔内的数据的方法比较常用,可以使用TO_DAYS.DATE_SUB等函数来实现. TO_DAYS函数的作用是返回指定日期从0年开始计算的天数. DATE_SUB函数的作用是通过指定日期减去指定间隔时间. 从而可以实现今天.昨天.最近7天(一周).最近30天(1个月).上个月等等查询方法.例子如下: 1.今天 SELECT * FROM t1 WHERE TO_DAYS(adddate) = TO_DAYS(CURDATE()); 2.昨天 SELECT * FROM t

Mysql中where条件一个单引号引发的性能损耗

日常写SQL中可能会有一些小细节忽略了导致整个sql的性能下降了好几倍甚至几十倍,几百倍.以下这个示例就是mysql语句中的一个单引号('')引发的性能耗损,我相信很多朋友都遇到过,甚至还在这样写. 先看下我的表结构: CREATE TABLE `d_sku` ( `id` varchar(36) NOT NULL, `commodity_id` varchar(36) DEFAULT NULL, `counts` int(11) DEFAULT NULL, `price` double(15,

mysql中判断记录是否存在方法比较

我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数. 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行

mybatis 传参为 Integer 时 ,Mapper 文件 中判断 条件 问题。

<if test="valiStatus==null || valiStatus=='' || valiStatus==4 "> b.work_permit_card_cert is not null and b.work_permit_card_cert!=1 and b.delete_flag =0 </if> <if test="valiStatus==0"> u.user_type = 0 and b.work_permi

MySQL中的insert ignore into, replace into等的一些用法小结(转)

MySQL中的insert ignore into, replace into等的一些用法总结(转) 在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`name`) ) ENGI

Bourne Shell中的条件判断

条件判断是一个程序获得智能的基础,而Bourne Shell脚本则通过命令 [ 来模拟大多数编程语言中的条件表达式. shell中支持的控制结构有: (1) if then else fi (2) for in do done (3) while do done 第二种主要用于遍历,可能不需要条件判断,其它两种则免不了和 [ 命令共同使用了.下面讲解这个命令如何模拟条件表达式. 文件/目录判断[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 FI