MySQL使用IF语句及用case语句对条件并结果进行判断 

目录
  • 一、前期准备
  • 二、IF语句
    • 1、场景一
    • 2、场景二
  • 三、CASE语句

一、前期准备

CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `jgid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (1, '二二', 2);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (2, '李四', 2);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (4, '七七', 3);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (5, '小猕猴', 1);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (6, '小米粥', 1);
INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (7, '小哈吧', 1);

二、IF语句

1、场景一

如果id是基数则是,否则则否

SELECT
	t1.*,
	IF(MOD(t1.id,2)=0 ,'是','否') AS 是否被二整除
FROM
	t1

2、场景二

如果id是偶数则判断id是否与jgid相等,如果Id是奇数则判断id是否与jgid不相等

SELECT
	t1.*
FROM
	t1
WHERE
IF( MOD ( t1.id, 2 )= 0, id = jgid, id <> jgid )

三、CASE语句

根据jgid赋予不同的角色

SELECT
	*,
 CASE
		WHEN jgid = 1 THEN
		'学生'
		WHEN jgid = 2 THEN
		'教师'
		WHEN jgid = 3 THEN
		'家长' ELSE ''
	END AS '角色'
FROM
	t1

到此这篇关于MySQL使用IF语句及用case语句对条件并结果进行判断 的文章就介绍到这了,更多相关MySQL IF语句 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql中IFNULL,IF,CASE的区别介绍

    假设有一数据表的状态字段设计为varchar类型,有以下值:NULL,pending,pending refund,refund,cancel. 我们知道查询状态为cancel的订单,SQL语句可以这样写:SELECT o.oid,o.moneyreceipt,o.moneyget,o.thecurrency,o.status FROM qorder o WHERE o.status = 'cancel' SQL语句能查询出正确的数据,但是当我们想查询状态为非cancel的订单时,可能会出麻烦,

  • MYSQL中有关SUM字段按条件统计使用IF函数(case)问题

    今天群里有人问了个问题是这样的:  然后有群友是这样回答的 复制代码 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下 复制代码 代码如下: select name,sum(money*IF(stype=4,-1,1)) as M from table group by name 两种方式那种更效率还

  • MySQL中的if和case语句使用总结

    Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 复制代码 代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3.IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定. 复制代码 代码如下: select *,if(sva=1,"男",&

  • MySQL控制流函数(-if ,elseif,else,case...when)

    目录 前言 IF(expr1,expr2,expr3) 简单逻辑判断 IFNULL(v1,v2) 空值替换 ISNULL(expression) 空值检测 NULLIF(expr1, expr2) 字符串比较 case 函数  实操案例 IF ELSE 做为流程控制语句使用 前言 不管是任何的编程语言,逻辑判断是必不可缺的一个板块:在Python.C.java这些火热的编程语言下,逻辑判断也是编程语言的一个亮点. IF(expr1,expr2,expr3) 简单逻辑判断 如果第一个条件成立,那么

  • 深入浅析MySQL 中 Identifier Case Sensitivity问题

    在MySQL当中,有可能遇到表名大小写敏感的问题.其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系.下面总结一下,有兴趣可以查看官方文档"Identifier Case Sensitivity" In MySQL, databases correspond to directories within the data directory. Each table within a database corresponds to at leas

  • MySQL使用IF语句及用case语句对条件并结果进行判断 

    目录 一.前期准备 二.IF语句 1.场景一 2.场景二 三.CASE语句 一.前期准备 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `jgid` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; INSERT INT

  • MySQL基础入门之Case语句用法实例

    目录 引言 CASE 的语法 CASE 语句在 MySQL 中是如何工作的? 带有 SELECT 和 ORDER BY 子句的 CASE 语句 具有聚合函数的 CASE 语句 补充:case行转列用法 总结 引言 MySQL CASE 是一个 MySQL 语句查询关键字,它定义了处理循环概念以执行条件集并使用 IF ELSE 返回匹配案例的方式. MySQL 中的 CASE 是一种控制语句,它验证条件案例集,并在第一个案例满足 else 值时显示值并退出循环. 如果没有找到 TRUE 且语句没有

  • VBS教程:VBScript 语句-Select Case 语句

    Select Case 语句根据表达式的值执行几组语句之一. Select Case testexpression[Case expressionlist-n[statements-n]] . . .[Case Else expressionlist-n[elsestatements-n]]End Select 参数testexpression 任意数值或字符串表达式. expressionlist-n 如 Case 出现则必选项.一个或多个表达式的分界列表. statements-n 当 te

  • mysql存储过程之case语句用法实例详解

    本文实例讲述了mysql存储过程之case语句用法.分享给大家供大家参考,具体如下: 除了if语句,mysql提供了一个替代的条件语句CASE. mysql的 CASE语句使代码更加可读和高效.废话不多说,我们先来看下简单case语句的语法: CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 THEN commands ... ELSE commands END CASE; 我们可以使

  • 查询mysql中执行效率低的sql语句的方法

    一些小技巧1. 如何查出效率低的语句?在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句.你也可以在启动配置文件中修改long query的时间,如: 复制代码 代码如下: # Set long query time to 8 seconds    long_query_time=8 2. 如何查询某表的索引?可使用SHOW INDEX语句,如: 复制代码 代码如下

  • MySQl数据库必知必会sql语句(加强版)

    这一篇属于加强版,问题和sql语句如下. 创建users表,设置id,name,gender,sal字段,其中id为主键 drop table if exists users; create table if not exists users( id int(5) primary key auto_increment, name varchar(10) unique not null, gender varchar(1) not null, sal int(5) not null ); inse

  • Shell编程之case语句实战(小结)

    大家好,今天给大家带来的是Shell编程之case语句的使用! 其实case语句还是很好理解的,在shell编程中,if语句有它的语法,函数也有它的语法,那么在我们shell编程中的case语句也是有它的语法的,如下: case 变量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;; esac 在以上的代码中我们发现,以case开头,以esac结尾,就像我们的if语句,以if开头以fi结束时一样的. 例2: case "找老公条件" in 家里有房子) 嫁给你.

  • Mysql中索引和约束的示例语句

    外键 查询一个表的主键是哪些表的外键 SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'mydbname' AND REFERENCED_TABLE_NAME = '表名'; 导出所有外键语句 SELECT CONCAT('ALTER

  • MySQL中几种插入和批量语句实例详解

    目录 前言 1.insert ignore into 2.on duplicate key update 3.replace into 4.insert if not exists 5.批量插入数据 6.批量更新 总结 前言 最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个user测试表,主要有id,userna

随机推荐