MySQL数据库(5)——逻辑处理

逻辑处理

        在MySQL中,可以使用逻辑运算符和条件语句来进行逻辑处理。

1.逻辑运算符

  • and 与
  • or 或
  • not 非

这里用法与Java中的用法相同,只是语法发生了部分变化。

2.case——when逻辑处理

语法:

case when 条件 then 结果1 else 结果2 end

注意:这里可以有多个when。 

这里用力扣中的一道题举例:

这里的答案是:

select r.a as id,case when r.c is null then 'Root'when r.c is not null and r.b = 2 then 'Inner'else 'Leaf' end as type
from (select t.id as a,n.res as b,t.p_id as cfrom Tree t left join (select p_id,count(*) as resfrom Treegroup by p_idhaving p_id is not null) n on t.id = n.p_id
) r;

        其中就用到了case对树的节点的连接情况进行了筛选(这是为举例临时做的,做的不好请见谅,可以去力扣官方查看优质题解),这里用到了多表查询,现在这个阶段还不能做,下图是表r,case就是对表r进行了条件处理。

        这里需要注意的是,then和else后面是一个值,位置在from前,要会正确使用。

3.ifnull逻辑处理

语法:

ifnull(被检测值,默认值)

         函数检测是否为null,如果为null,则返回指定值,否则返回原本的值。

4.if逻辑处理

语法:

if(条件,条件成立的结果,条件失败的结果)

        相当于if else的效果。

数学函数

  1. round(数值):四舍五入;
  2. ceil(数值):向上取整,返回>=该参数的最大整数;
  3. floor(数值):向下取整,返回<=该参数的最小整数;
  4. truncate(数值,保留小数的位数):截断函数,小数点后几位保留,剩下的截断;
  5. mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负;
  6. rand():获取随机数,返回0~1之间的小数;

日期函数

  1. now():返回当前系统的日期+时间;
  2. curdate():返回当前系统日期,不包含时间;
  3. curtime():返回当前时间,不包含日期;
  4. 可以获取指定的部分(年、月、日、时、分、秒),参数都是日期列:YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND(),举例:
    SELECT HOUR('2021-01-01 12:30:45'); -- 输出 12,表示 '2021-01-01 12:30:45' 的小时部分是12
  5. datediff(bigTime,smallTime):返回两个日期相差的天数;

  6. str_to_date(字符串格式日期,格式):将日期格式的字符转换成指定格式的日期;

  7. date_format(日期列,格式):将日期转换成字符串。

日期格式
  1. %Y:年,4位;
  2. %m:月,数值(01-12);
  3. %d:月的天数,数值为(01-31);
  4. %H:小时,数值为(00-23);
  5. %i:分钟,数值为(00-59);
  6. %s:秒,数值为(00-59);
  7. %f:微秒;
  8. %T:时间,数值为(hh:mm:ss);
  9. %j:年的天(001-366);
  10. %W:周的天;
  11. %y:年(只有两位);

举例:

  1. 将日期格式化为年份和月份: SELECT DATE_FORMAT('2022-09-15', '%Y-%m') AS formatted_date; 结果为:'2022-09'

  2. 将日期格式化为月份和日期: SELECT DATE_FORMAT('2022-09-15', '%M %d') AS formatted_date; 结果为:'September 15'

  3. 将日期格式化为星期几: SELECT DATE_FORMAT('2022-09-15', '%W') AS formatted_date; 结果为:'Thursday'

  4. 将时间格式化为小时和分钟: SELECT DATE_FORMAT('12:30:45', '%H:%i') AS formatted_time; 结果为:'12:30'

  5. 将日期和时间格式化为完整的日期和时间: SELECT DATE_FORMAT('2022-09-15 12:30:45', '%Y-%m-%d %H:%i:%s') AS formatted_datetime; 结果为:'2022-09-15 12:30:45'

分组函数

        分组函数用作统计使用,又称为聚合函数或统计函数或组函数。

常用函数:

  1. sum求和函数;
  2. avg平局值函数;
  3. max最大值函数;
  4. min最小值函数;
  5. count计数函数;

注意点:

  • sum、avg一般用于处理数值型数据,而max、min、count可以处理任何类型数据;
  • 以上分组函数都忽略null值;
  • count函数的一般使用count(*)用作统计行数;
  • 和分组函数一同查询的字段要求是group by后的字段。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot实现驾校信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现驾校信息管理系统演示 摘要 随着人们生活水平的不断提高&#xff0c;出行方式多样化&#xff0c;也以私家车为主&#xff0c;那么既然私家车的需求不断增长&#xff0c;那么基于驾校的考核管理也就不断增强&#xff0c;那么业务系统也就慢慢的随之加大。信息…

15. jwt认证中间件

在上一篇登录功能的实现中&#xff0c;我们使用了jwt作为鉴权组件&#xff0c;其中登录后会颁发token。前端在访问后续请求时&#xff0c;可以带上这个token。对于一些需要权限校验的请求&#xff0c;我们就需要验证这个token&#xff0c;从token中获取到用户id&#xff08;有了…

MQTT.fx实现(MQTT Client)连接物联网平台(ThingsCloud )

目录 概述 1 ThingsCloud平台介绍 2 ThingsCloud创建项目 2.1 创建项目 2.2 创建数据类型 2.3 创建设备类型 3 发布和订阅主题 3.1 发布Topic 3.2 订阅主题Topic 4 使用MQTT.fx 测试ThingsClond 4.1 使用MQTT.fx连接ThingsClond 4.2 MQTT.fx 订阅ThingsCloud Messag…

jenkins+maven+gitlab自动化构建打包、部署

Jenkins自动化部署实现原理 环境准备 1、jenkins已经安装好 docker安装jenkins 2、gitlab已经安装好 docker安装gitlab 一、Jenkins系统配置 1.Global Tool Configuration 任务构建所用到的编译环境等配置&#xff0c;配置参考&#xff1a; jdk配置&#xff08;jenkins自带…

GCNv2_SLAM-CPU详细安装教程(ubuntu18.04)

GCNv2_SLAM-CPU详细安装教程-ubuntu18.04 前言一、安装第三方库1.安装Pangolin2.安装OpenCV3.安装Eigen4.安装Pytorch(c) 二、安装以及运行GCNv2_SLAM1.安装编译GCNv2_SLAM2.单目模式运行演示案例 总结 前言 paper:https://arxiv.org/pdf/1902.11046.pdf githup::https://gith…

linux 安装gradle7.4.2环境

1.下载gradle7.4.2工程 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1hoNEFkBJPHAgs9ITAEh3Zg?pwdGJ…

DDos攻击如何被高防服务器有效防范?

德迅云安全-领先云安全服务与解决方案提供商 什么是DDos攻击&#xff1f; DDos攻击是一种网络攻击手段&#xff0c;旨在通过使目标系统的服务不可用或中断&#xff0c;导致无法正常使用网络服务。DDos攻击可以采取多种方式实施&#xff0c;包括洪水攻击、压力测试、UDP Flood…

WPF —— TabControl、StackPanel 控件详解

1 TabControl简介 表示包含多个项的控件&#xff0c;这些项共享屏幕上的同一空间。 TabControl有助于最大程度地减少屏幕空间使用量&#xff0c;同时允许应用程序公开大量数据。 TabControl包含共享同一屏幕空间的多个 TabItem 对象。一次只能看到 TabControl 中的一个 Ta…

java的23种设计模式02-创建型模式02-抽象工厂方法

一、抽象工厂方法 1-1、抽象工厂方法的定义 抽象工厂模式是一个比较复杂的创建型模式。 抽象工厂模式和工厂方法不太一样&#xff0c;它要解决的问题比较复杂&#xff0c;不但工厂是抽象的&#xff0c;产品是抽象的&#xff0c;而且&#xff1a;有多个产品需要创建&#xff…

玩转 Spring 状态机:更优雅的实现订单状态流转

说起 Spring 状态机&#xff0c;大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢&#xff1f;没错&#xff0c;Spring 状态机就是状态模式的一种实现&#xff0c;在介绍 Spring 状态机之前&#xff0c;让我们来看看设计模式中的状态模式。 1. 状态模式 状态模式…

pytorch之诗词生成3--utils

先上代码&#xff1a; import numpy as np import settingsdef generate_random_poetry(tokenizer, model, s):"""随机生成一首诗:param tokenizer: 分词器:param model: 用于生成古诗的模型:param s: 用于生成古诗的起始字符串&#xff0c;默认为空串:return: …

linux 安装/升级 svn

文章目录 下载最新版本安装包安装 下载最新版本安装包 wget https://dlcdn.apache.org/subversion/subversion-1.14.3.tar.gz tar -zxf subversion-1.14.3.tar.gz cd subversion-1.14.3 安装 ./configure 报错&#xff0c;提示缺少 apr-util 库&#xff0c;有的环境可能 apr 库…

人工智能|机器学习——CURE聚类算法(层次聚类)

1.CURE聚类概述 绝大多数聚类算法或者擅长处理球形和相似大小的聚类&#xff0e;或者在存在孤立点时变得比较脆弱。CURE采用了一种新颖的层次聚类算法&#xff0e;该算法选择基于质心和基于代表对象方法之间的中间策略。它不同于单个质心或对象来代表一个类&#xff0c;而是选择…

大话设计模式——6.工厂方法模式(Factory Method Pattern)

1.介绍 工厂方法模式也称工厂模式&#xff0c;是简单工厂模式的进一步抽象。定义一个用于创建对象的接口&#xff0c;使一个类的实例化延迟到其子类&#xff0c;让子类决定实例化哪个类。通过工厂父类定义负责创建产品的公共接口&#xff0c;通过子类确定所需要创建的类型。 属…

《ElementPlus 与 ElementUI 差异集合》el-input 多包裹一层 el-input__wrapper

差异 element-ui el-input 中&#xff0c;<div class"el-input"> 下一级就是 <input> 标签 &#xff1b;element-plus el-input中&#xff0c;<div class"el-input"> 和 <input> 标签之间多了一层 <div class"el-input__…

Nginx、LVS、HAProxy工作原理和负载均衡架构

当前大多数的互联网系统都使用了服务器集群技术&#xff0c;集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务&#xff0c;这些集群可以是 Web 应用服务器集群&#xff0c;也可以是数据库服务器集群&#xff0c;还可以是分布式缓存服务器集群等等。 在实际应用…

提升零售行业竞争力的信息抽取技术应用与实践

一、引言 在当今快速发展的零售行业中&#xff0c;沃尔玛、家乐福等大型连锁超市为消费者提供了丰富的日常食品和日用品。为了进一步提升客户体验和优化库存管理&#xff0c;这些零售巨头纷纷开始探索和应用先进的信息抽取技术。 本文将深入探讨一个成功的信息抽取项目&#…

使用HttpRequest工具类调用第三方URL传入普通以及文件参数并转换MultipartFile成File

使用HttpRequest工具类调用第三方URL传入普通以及文件参数 一、依赖及配置二、代码1、模拟第三方服务2、调用服务3、效果实现 一、依赖及配置 <!--工具依赖--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId&g…

嵌入式单片机学习思路感想分享

今天看到了一个提问,原话如下: 曾经干了8年单片机工程师,对工程师从入门,到入行,再到普通,再到高级,整个路径还算清晰,比如什么阶段,会碰到什么瓶颈,怎么突破,我都经历过。 这个同学,有个典型的问题,就是学得太多且杂了,估计稍微复杂点的项目,做不出来。 现在…

Spring Boot 中@Scheduled是单线程还是多线程?

在开发Spring Boot应用程序时&#xff0c;定时任务是一项常见的需求。Spring Boot提供了Scheduled注解&#xff0c;可用于将方法标记为定时任务&#xff0c;并在预定的时间间隔内执行。那么Scheduled注解的执行方式是单线程执行&#xff0c;还是多线程执行&#xff1f;Schedule…