MySQL中IF函数的使用方法

2023-11-03

定义

IF函数根据条件的结果为true或false,返回第一个值,或第二个值

语法

IF(condition, value_if_true, value_if_false)


参数

参数    描述

condition    必须,判断条件

value_if_true    可选,当条件为true值返回的值

value_if_false    可选,当条件为false值返回的值


例子

当查询表里的性别字段时,用IF函数,将表中存的数字转换成字符串查出来

首先建一个学生表

CREATE TABLE `student` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `nick` VARCHAR(20) NOT NULL,
    `gender` TINYINT(1) NOT NULL,
    PRIMARY KEY (`id`) USING BTREE
)

INSERT INTO student(nick, gender) VALUES ('xiaoming', 1),('xiaohong', 2),('xiaogang', 1)

当我们关联查询时,1显示男生同学,2显示女生同学,这种业务场景下就要使用IF函数查询

例:SELECT id AS '学生id',nick AS '学生昵称',IF(gender = 1,'男','女') AS '性别' FROM student

查询结果为:

学生id   学生昵称   性别

1          xiaoming    男
2          xiaohong    女
3          xiaogang    男

注:第一个字段可以使用各种条件判断,比如>,<,=,<>,甚至还能做运算,如gender+1 = 2这样的判断

如果我们不写任何判断条件,直接写gender字段,那则会通过真假来判断显示,0,'',null均为false,会走第二个条件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL中IF函数的使用方法 的相关文章

  • MySQL小写自动转换

    我有多个在数据库表中写入数据的 Web 服务 我想针对特定字段自动将大写字符串转换为小写字符串 mysql 有没有执行此任务的函数 假设这是表 id name language 有时 在语言字段内 Web 服务会写入大写字符串 IT 我想直
  • Errno 121,写入或更新时出现重复密钥?

    SET OLD UNIQUE CHECKS UNIQUE CHECKS UNIQUE CHECKS 0 SET OLD FOREIGN KEY CHECKS FOREIGN KEY CHECKS FOREIGN KEY CHECKS 0 S
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • 在 LINQ 中执行 FirstOrDefault 的替代方法

    我有一个成员资格表 用于记录用户是否是列表的成员 当用户的成员资格发生更新时 会写入新记录 并且先前的记录保持原样 从而可以维护其成员资格的历史记录 要获取用户的会员身份 需要选择他们最近的条目 下面是一些用户列表成员资格数据的示例 目的是
  • 您可以使用 MySQL 查询来完整创建数据库的副本吗

    我有一个包含 5 个表的 MySQL 数据库的实时版本和一个测试版本 我不断使用 phpMyAdmin 将实时版本中的每个表复制到测试版本 有谁有mysql查询语句来制作数据库的完整副本吗 查询字符串需要考虑结构 数据 自动增量值以及与需要
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • 主键默认可以为NULL吗?为什么这样描述呢?

    我有一张桌子 当我describe这是 mysql gt DESC my table Field Type Null Key Default Extra contact id int 11 NO PRI NULL auto incremen
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • 错误代码:1062。重复条目“PRIMARY”

    因此 我的教授给了我表格将其插入数据库 但是当我执行他的代码时 MySQL 不断给出错误代码 1062 这是冲突表和插入 TABLES CREATE TABLE FABRICANTES COD FABRICANTE integer NOT
  • MySQL InnoDB引擎是否对只读事务运行任何性能优化

    根据参考文档 只读事务标志可能会提示存储引擎运行一些优化 设置会话事务只读 如果事务访问模式设置为 READ ONLY 则对表进行更改 被禁止 这可能使存储引擎能够提高性能 不允许写入时可能进行的改进 InnoDB引擎是否对只读事务运行这样
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表? [复制]

    这个问题在这里已经有答案了 如何使用命令提示符删除 Windows MySQL 中的所有表 我想这样做的原因是我们的用户有权访问数据库删除 但无权重新创建数据库本身 因此我们必须手动删除表 有没有办法一次删除所有表 请记住 大多数表都与外键
  • mysql时间比较

    我有 job start 和 job end 时间 timediff 会给我时间差 现在我想看看这项工作是否花费了超过 2 小时 30 分钟 我如何比较它 如果我这样做 我会收到错误 timediff job start job end g
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • 如何对字段数据进行分组?

    我有 sql 查询来显示数据 SELECT artikel foto naam fotografer id fotografer name fotografer customer first name customer last name
  • 如何关闭整个数据库的区分大小写

    我创建了一个包含许多脚本和许多存储过程的数据库 在这个数据库中 我们没有注意担心区分大小写 因为它对于我的本地开发计算机来说是关闭的 综上所述 我试图弄清楚如何使以下两条语句返回相同的结果 SELECT FROM companies SEL

随机推荐

  • ❤echarts折线图完整使用及详细配置参数

    echarts折线图完整使用及详细配置参数 进入echarts官网 查看案例 下面说说一些echarts图的调节 一 配置echarts具体参数 01 基础版本的折线图 option xAxis type category data Mon
  • 将gif图转成静态图片显示canvas

    需求描述 仅一张gif动图 进入页面 呈现静态图片显示 点击 gif图显示 代码实现
  • uniapp全局分享以及指定页面分享禁用的设置

    1 创建share js文件 module exports onLoad 设置默认的转发参数 share title 默认为小程序名称 path 默认为当前页面路径 imageUrl 默认为当前页面的截图 白名单 const urlList
  • Apollo学习笔记

    Apollo学习笔记 Apollo课程 智能驾驶入门课程 无人驾驶概览 1 软件层分为三层 实时操作系统 RTOS 确保在给定时间内完成特定任务 实时时确保系统稳定性 驾驶安全性的重要要求 通过在Ubuntu Linux操作系统加入Apol
  • 带有Cookie功能的HTTP访问函数,GET,PUT/POST

    define AFX INET SERVICE FTP INTERNET SERVICE FTP define AFX INET SERVICE HTTP INTERNET SERVICE HTTP define AFX INET SERV
  • Oracle删除数据的三种方式

    Oracle删除数据的三种方法 删除表 记录和结构 的语句delete truncate drop drop命令 drop table 表名 例如 删除学生表 student drop table student 注意 1 用drop删除表
  • node.js学习——初始node,node基本介绍,环境安装,运行第一个node程序。

    node js学习 初始node node基本介绍 环境安装 运行第一个node程序 1 node基本介绍 为什么学习Node js 什么是node js Node js的特性 Node js能做什么 2 Node环境安装 环境安装 3 第
  • Oracle中connect by...start with...的使用

    一 语法 大致写法 select from some table where 条件1 connect by 条件2 start with 条件3 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果 wh
  • android studio导入源码(来自github上下载的压缩包)

    Francis学习笔记之android studio解决系列一 andorid studio导入源码问题及android studio 中途出错解决办法 一 导入源码 首先看一下从github下载的压缩包解压后文件内容 从上面发现没有gra
  • 【深度长文】循序渐进解读Oracle AWR性能分析报告

    深度长文 循序渐进解读Oracle AWR性能分析报告 原创 2016 10 19 韩锋 DBAplus社群 http mp weixin qq com s biz MzI4NTA1MDEwNg mid 2650757102 idx 1 s
  • Android onNewIntent调用时机

    1 onNewIntent 首先看一下Activity 的生命周期 从图中可知 初次启动 Activity 时 调用顺序为 onCreate gt onStart gt onResume 那么 onNewIntent 是什么时候被触发的呢
  • 动态解析ipv6地址,实现域名访问家里网络

    前提已有IPv6地址 有阿里云的域名 非顶级域名便宜 一般几块一年 脚本实现方式 获取token 如果没有创建一个 获取阿里云AccessToken 修改脚本变量值 运行后运行脚本 即可在域名解析找到新增的记录 因为供应商提供dns不固定
  • 一文带你熟练掌握android的arm32汇编指令。

    1 ARM32的常见指令解析 ADC 带进位加法指令 ADD 加法指令 AND 逻辑与指令 B 分支指令 BIC 位清零指令 BL 带返回的分支指令 BLX 带返回和状态却换的分支指令 BX 带状态却换的分支指令 CDP 协处理器数据操作指
  • 内联函数inline和宏定义

    内联函数inline和宏定义 内联函数的优越性 一 inline定义的类的内联函数 函数的代码被放入符号表中 在使用时直接进行替换 像宏定义一样展开 没有了调用的开销 效率很高 二 类的内敛函数是一个真正的函数 三 使用内联函数inline
  • 【华为OD机试】 比赛的冠亚季军【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 有N 3 N lt 10000 个运动员 他们的id为0到N 1 他们的实力由一组整数表示 他们之间进行比赛 需要决出冠亚军 比赛的规则是0号和1号比赛 2号和3号比
  • Python网络爬虫--项目实战(2)--起点小说爬取

    一 目标 爬取起点小说一本免费小说 并将所有章节名称和内容都保存到本地 我选择爬取 我真的好想打球 二 分析 2 1 网页分析 ctrl U 进入网页的源代码 输入任意章节名称 可以在代码中找到 初步判定该网页为静态加载的 2 2 反爬分析
  • [整理]Android屏幕适配(不同的屏幕分辨率和尺寸)

    Android屏幕适配 目录 Android屏幕适配 概念区分 换算关系 划分标准 Android手机常见尺寸和对应分辨率 部分Android测试机分析 补充9图的使用说明 在实际开发过程中 会遇到不同的机型 为了让控件和布局要在不同屏幕上
  • oracle-02 基本命令

    step1 eg 这一部分内容会保存到 test sql文件中 step2 step 3 当前用户有哪些表格 SQL gt desc user tables SQL gt select table name from user tables
  • 慢sql监控

    1 开启慢sql日志 1 1 windows window的mysql配置 编辑C ProgramData MySQL MySQL Server 5 7 my ini 添加如下 是否开启慢查询日志 1表示开启 0表示关闭 slow quer
  • MySQL中IF函数的使用方法

    定义 IF函数根据条件的结果为true或false 返回第一个值 或第二个值 语法 IF condition value if true value if false 参数 参数 描述 condition 必须 判断条件 value if