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

yizhihongxing

MySQL控制流函数主要是用于控制程序的执行流程,使用这些函数可以根据不同的条件执行不同的代码块。常用的控制流函数有if、elseif、else、case和when,下面我来逐个介绍。

if函数

if函数语法如下:

IF(expression, true_value, false_value)

其中,expression为一个布尔表达式,true_value和false_value是两个表达式,当布尔表达式expression为true时,if函数返回true_value,否则返回false_value。

例如:

SELECT IF(1>2, 'yes', 'no');   // 返回no
SELECT IF(1<2, 'yes', 'no');   // 返回yes

elseif、else函数

elseif和else函数通常与if函数一起使用,用于确定不同的运行的程序流程。语法如下:

IF(expression1, value1, IF(expression2, value2, ... IF(expressionN, valueN-1, valueN)))

其中,expression1、expression2...expressionN均为布尔型表达式,而value1、value2...valueN为各自表达式成立时的返回值。

例如,以下代码块将判断三个数字的大小关系:

SELECT IF(3>5, '3>5', IF(3=5, '3=5', '3<5'));   // 返回3<5

Case...when函数

case-when函数语法如下:

CASE expression
    WHEN value1 THEN result1
    WHEN valueN THEN resultN
    ELSE default_result
END

其中,expression为某个表达式或字段值,value1、value2、valueN为表达式的各个匹配值,result1、result2、resultN为匹配值对应的结果,而default_result为表达式不匹配任何值时的默认结果。

例如,以下代码块将判断score字段对应的等级关系:

SELECT score ,CASE 
                   WHEN score > 90 THEN 'A'
                   WHEN score > 80 THEN 'B'
                   WHEN score > 70 THEN 'C'
                   WHEN score > 60 THEN 'D'
                   ELSE 'E'
               END as '等级'
FROM grades;

以上就是MySQL控制流函数的完整攻略了,学会这些函数将有助于我们编写更为高效灵活的程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL控制流函数(-if ,elseif,else,case…when) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • MySQL8.0 创建用户及授权 – 看这篇就足够了

    MySQL8.0 创建用户及授权 – 看这篇就足够了 什么时候会用到 对接外系统时,需要给其余系统开放访问权限 本系统中,分权限管理数据,防止root权限删库跑路? mysql版本 MySql8.0+ 具体步骤 1.命令行进入MySql 使用 mysql -u#UserName -p#PassWord 命令进入MySql #UserName 代表你的MySq…

    2023年4月8日
    00
  • MySQL 插入或更新

    数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。记录一些遇到的语法,以便随时查阅。 插入或更新 ON DUPLICATE KEY UPDATE 执行插入或更新 语法 <插入语句> ON DUPLICATE KEY UPDATE <更新语句>; 先执行插入语句,如果发生重…

    MySQL 2023年4月12日
    00
  • 数仓如何进行表级控制analyze?

    摘要: 介绍如何设置采样大小和表级控制analyze。 本文分享自华为云社区《GaussDB(DWS) 如何表级控制analyze》,作者:leapdb。 一、控制采样大小 【设置全局采样大小】 通过参数default_statistics_target设置全局默认采样大小。 a.default_statistics_target>0,表示按固定值方式…

    MySQL 2023年4月18日
    00
  • 解决navicat远程连接mysql报错10038的问题

    解决navicat远程连接mysql报错10038的问题 问题描述 在使用Navicat等第三方软件进行远程连接MySQL时,可能会遇到报错10038的情况。该错误通常会在尝试连接数据库时发生,错误信息如下: 10038 – Network error: Socket operation on nonsocket 问题原因 该错误可能有多种原因,包括防火墙设…

    MySQL 2023年5月18日
    00
  • MySQL的复合索引总结

    MySQL是一款常用的关系型数据库,索引是MySQL中优化查询性能的重要手段。复合索引是一种在多列上创建的索引,相比于单列索引,复合索引能够更加精确的定位需要检索的数据。 复合索引概述 复合索引是在多个列上创建的索引,可以通过查询中的多个条件来定位到符合条件的数据。对于多个列的查询,复合索引优于单列索引,因为单列索引不能够覆盖所有查询列的数据。 复合索引的创…

    MySQL 2023年5月19日
    00
  • 开启MySQL远程连接的方法

    以下是开启 MySQL 远程连接的完整攻略: 1. 修改 MySQL 配置文件 1.1 进入 MySQL 配置文件目录 MySQL 配置文件通常在 Linux 系统的 /etc/my.cnf 或 /etc/mysql/my.cnf 目录下,Windows 系统的路径为 C:\Program Files\MySQL\MySQL Server 8.0\my.in…

    MySQL 2023年5月18日
    00
  • 配置ogg异构oracle-mysql(3)目的端配置

    目的端配置大致分为如下三个步骤:配置mgr,配置checkpoint table,配置应用进程 在目的端先创建一张表,记得带主键: mysql> create database hr;Query OK, 1 row affected (0.00 sec) mysql> use hrDatabase changedmysql> create …

    MySQL 2023年4月12日
    00
  • 由浅入深学MYSQL之–MySQL分组查询详解

    前言 从今天开始本系列文内容就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约 【1066】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好的理解和运用文中的技术概念,并可以给你带来具有…

    MySQL 2023年5月6日
    00
合作推广
合作推广
分享本页
返回顶部