MySQL常见用法

2023-05-16

文章目录

      • 一、时间类
        • 1.1 DATE_SUB() 函数
        • 1.2 NOW(), CURDATE(), CURTIME(), DATE()函数
        • 1.3 实战
      • 二、统计类
      • 三、字符类
        • 3.1 LOCATE()函数
        • 3.2 concat()函数
        • 3.3 concat_ws()函数
        • 3.4 group_concat()函数
        • 3.5 repeat()函数
        • 3.6 REPLACE()函数
      • 四、判断类
        • 4.1 case when方法
        • 4.2 IFNULL()函数
        • 4.3 IF语句

一、时间类

1.1 DATE_SUB() 函数

DATE_SUB() 函数从日期减去指定的时间间隔。参考

常见用法:

  • 查询一天前:
    select * from table where DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date(column_time);
    
  • 查询一周前:
    select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
    
  • 查询一个月前:
    select * from table where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(column_time);
    
  • 查询一天后:
    select * from table where DATE_SUB(CURDATE(), INTERVAL -1 DAY) >= date(column_time);
    

1.2 NOW(), CURDATE(), CURTIME(), DATE()函数

获取时间

  • SELECT NOW(), CURDATE(), CURTIME()
  • SELECT DATE(NOW())

1.3 实战

SELECT column_list FROM table_name WHERE expired_date = CURDATE();

如果expired_date列包含日期和时间部分,则应使用DATE()函数仅提取日期部分并将其与当前日期进行比较:

SELECT column_list FROM table_name WHERE DATE(expired_date) = CURDATE();

二、统计类


三、字符类

3.1 LOCATE()函数

  • 语法1:LOCATE(substr, str)

    返回子串 substr 在字符串 str 的第一个出现的位置(从1开始算)。如果 substr 不在 str 中,则返回值为0 。

    SELECT LOCATE('bar', 'foobarbar'); // 4
    
  • 语法2:LOCATE(substr, str, pos)

    第二个语法返回子符串 substr 在字符串 str ,从 pos 处开始的第一次出现的位置。如果 substr 不在 str 中,则返回值为0。

3.2 concat()函数

语法:concat(str1, str2, …)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

select concat('11','22','33'); // 112233
select concat('11','22',null); // NULL

3.3 concat_ws()函数

语法:contcat_ws(separator,str1,str2,…)

contcat_ws() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
注意:如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

select concat_ws(',','11','22','33'); // 11,22,33
select concat_ws(null ,'11','22','33'); // NULL

和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL。

select concat_ws(',','11','22',NULL); // 11,22

3.4 group_concat()函数

语法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

以id分组,把name字段的值打印在一行,逗号分隔(默认):

select id,group_concat(name) from aa group by id;

以id分组,把name字段的值打印在一行,分号分隔:

select id,group_concat(name separator ';') from aa group by id;

以id分组,把去冗余的name字段的值打印在一行,逗号分隔:

select id,group_concat(distinct name) from aa group by id;

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序:

select id,group_concat(name order by name desc) from aa group by id;

3.5 repeat()函数

语法:repeat(str, int)

用来复制字符串,如下’ab’表示要复制的字符串,2表示复制的份数:

select repeat('ab',2); // abab

3.6 REPLACE()函数

语法:REPLACE(str, from_str, to_str)

将str中所有出现的from_str替换为to_str。str可以是字段名。

select *, replace(address,'区','呕') AS rep from test_tb;

四、判断类

4.1 case when方法

统计字段中特定值的数量:

select sum(case when name = "张三" or name = "李四" then 1 when age >= 18  then 1 else 0 end) as NAMSUM from xxx_table;

注意:多个when…then都会执行,结果是取并集,而不是直接累加,也不是只执行其中一个when…then。(如果要严格上的判断,可以用【IF语句】,基本类似编程语言中的if…elseif…else)

4.2 IFNULL()函数

语法:IFNULL(expression_1,expression_2);

如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。IFNULL函数根据使用的上下文返回字符串或数字。

SELECT IFNULL(1,0); -- returns 1
SELECT IFNULL('',1); -- returns ''
SELECT IFNULL(NULL,'IFNULL function'); -- returns IFNULL function

4.3 IF语句

如果要返回基于TRUE或FALSE条件的值,而不是NULL,则应使用IF函数。

  • IF语句

    IF expression THEN 
    	statements;
    END IF;
    
  • IF ELSE语句

    IF expression THEN
    	statements1;
    ELSE
    	statements2;
    END IF;
    
  • IF ELSEIF ELSE语句

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

MySQL常见用法 的相关文章

  • 栈的应用之括号匹配算法

    算法思路 xff1a 初始化一个栈 xff0c 命名为s 依次遍历待匹配的字符串 如果当前字符为左括号 xff08 即 39 39 39 39 39 39 中的任意一个 xff09 xff0c 则将其入栈 如果当前字符为右括号 xff08
  • jsp页面在浏览器中显示乱码( 没有账号?)

    错误 xff1a jsp页面在浏览器显示乱码 xff0c 如下图所示 xff1a 解决方法 xff1a 主要是因为浏览器使用的编码格式与自己开发文件存储内容的编码不一致导致的 xff0c 所以需要在jsp页面中添加如下代码 xff0c 问题
  • 队列的应用之打印杨辉三角形

    题目 xff1a 利用队列打印杨辉三角形 特点 xff1a 杨辉三角除第一行为两个1以外 xff0c 从第二行开始 xff0c 每一行的首尾都为1 xff0c 中间位置的数为上一行中与之相邻的两个数之和 xff0c 可以使用我们学过的队列问
  • 栈和队列的应用之停车问题

    题目 xff1a 设停车场是一个可停放n辆汽车的狭长通道 xff0c 且只有一个大门可供汽车进出 汽车在停车场内按车辆到达时间的先后顺序 xff0c 依次由北向南排列 xff08 大门在最南端 xff0c 最先到达的第一辆车停放在停车场的最
  • Jupyter Notebook 安装与使用教程

    一 什么是Jupyter Notebook xff1f 1 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序 其可被应用于全过程计算 xff1a 开发 文档编写 运行代码和展示结果 Jupyter Notebook官
  • java.lang.NoSuchMethodError: org.springframework.core.type.AnnotationMetadata.introspect之解决方法

    错误 xff1a idea中使用spring整合mybatis报错 xff1a java lang NoSuchMethodError org springframework core type AnnotationMetadata int
  • 栈和队列的应用之回文数判断

    题目 xff1a 采用栈和队列的方法检测并输出一个单词是否为回文 代码 xff1a include lt stdio h gt include lt malloc h gt define SIZE 20 using namespace st
  • 二叉链表树的遍历

    题目 xff1a 使用二叉链表树创建算法Status CreatBiTree BiTree amp T 和其他代码 二叉树的遍历有三种 xff1a 前序遍历 xff1a 先访问根节点 xff0c 再遍历左子树 xff0c 最后遍历右子树 x
  • opencv的框架与各模块功能介绍

    记录一下自己的所学知识 xff0c 便于日后回顾与整理 文中内容多为摘录 xff0c 具体链接如下 xff1a 摘录自 xff1a https zhuanlan zhihu com p 33008701 xff08 框架介绍 xff09 h
  • Android调用C/C++库

    AndroidStudio版本2021 1 1 一 AndroidStudio将C C 43 43 库打包成so库过程 AndroidStudio新建NativeC 43 43 工程 xff1b 在Tools gt SDK Manager里
  • SocketCan 应用编程

    SocketCan 应用编程 由于 Linux 系统将 CAN 设备作为网络设备进行管理 xff0c 因此在 CAN 总线应用开发方面 xff0c Linux 提供了SocketCAN 应用编程接口 xff0c 使得 CAN 总线通信近似于
  • QT开发笔记(继承 QObject 的线程 )

    继承 QObject 的线程 在第 10 章章节开头已经说过 xff0c 继承 QThread 类是创建线程的一种方法 xff0c 另一种就是继承 QObject 类 继承 QObject 类更加灵活 它通过 QObject moveToT
  • CoppeliaSim:视觉传感器的使用与属性参数

    视觉传感器类型 http www coppeliarobotics com helpFiles index html Orthographic projection type the field of view of orthographi
  • 华为Atlas200DK环境配置指南(版本20.0.0)

    官方参考文档 https support huaweicloud com usermanual A200dk 3000 atlas200dk 02 0024 html 务必保证配置时版本 20 0 0 一致 1 配置开发环境 自己电脑 若不
  • PX4 QGC地面站自定义参数

    QGC地面站自定义参数 xff08 新手操作 xff09 v1 8 2 QGC以往版本下载地址 htps github com mavlink qgroundcontrol tags 最终的添加结果如下 xff1a 具体步骤如下 xff1a
  • Linux网络编程----UDP编程基础知识

    UDP概述 UDP 是 User Datagram Protocol 的简称 xff0c 中文名是用户数据报协议 xff0c 是一个简单的面向数据报的传输层协议 xff0c 在网络中用于处理数据包 xff0c 是一种无连接的协议 UDP 不
  • get 命令汇总

    get 命令汇总 git config 配置 Git 的相关参数 Git 一共有3个配置文件 xff1a 1 仓库级的配置文件 xff1a 在仓库的 git gitconfig xff0c 该配置文件只对所在的仓库有效 2 全局配置文件 x
  • c++ socket简单封装

    简单封装 并不实际应用 框架图 Mysocket 主要是定义TCP和UDP的一些相同的操作 xff0c 需要的他们各自去实现 Mysocket h ifndef MYSOCKET H define MYSOCKET H class MySo
  • pixhawk2飞控接头型号

    BM04B GHS TBT BM05B GHS TBT BM06B GHS TBT
  • 多种视觉SLAM方案对比

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 新机器视觉 在SLAM研究中 xff0c 我们通常需要在各数据集上测试各个方案的性能情况 如下主要对表1中6个视觉SLAM方

随机推荐

  • 激光雷达核心技术及行业格局梳理

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 引言 xff1a 车载摄像头是ADAS 的核心传感器 车载摄像头搭载颗数稳步提升 根据 Yole 数据 xff0c 2018 年全球平
  • 2 ROS1通讯编程基础(2)

    2 ROS1通讯编程基础 2 3 配置文件的解读2 3 1 CMakeList txt解读2 3 1 1 find package的配置2 3 1 2 messages services and actions的配置2 3 1 3 动态重配
  • Rviz 使用Arbotix控制机器人运动

    需求 控制机器人模型在 rviz 中做圆周运动 实现流程 安装 Arbotix创建新功能包 xff0c 准备机器人 urdf xacro 文件添加 Arbotix 配置文件编写 launch 文件配置 Arbotix启动 launch 文件
  • VINS问题整理

    VINS的初始化过程 xff1f 首先进行纯视觉SfM xff1a 把滑窗填满 xff0c 然后选择枢纽帧 xff08 和最后一帧有足够的视野重叠保证计算的位姿精度 xff0c 并且和最后一帧有足够的视差保证三角化地图点的精度 xff09
  • 两台ubuntu电脑如何搭建局域网以及通信

    两台ubuntu电脑如何搭建局域网以及通信 功能 xff1a 用自己的电脑代替设备中的电脑进行数据处理 xff0c 以及将最后的结果传给设备电脑 需要做的内容的 xff1a 首先用网线将自己的pc与设备连接起来 1 将自己的笔记本ip地址手
  • PC偏振控制器、锁模激光器技术、AOM声光调制器、相位噪声、锁相环、光耦合器类型

    1 PC 偏振控制器 xff08 1 xff09 什么叫做偏振光 xff1f polarized light 光是一种电磁波 xff0c 电磁波是横波 xff0c 它具有偏振性 xff0c 具有偏振性的光则称为偏振光 具体体现 xff1a
  • 小梅哥——38译码器

    三八译码器 xff0c 即是 3 种输入状态翻译成 8 种输出状态 真值表 代码展示 module decoder 3 8 a b c out input a 输入端口a input b 输入端口b input c 输入端口c output
  • 基本RS触发器(SR锁存器)

    一 前言 SR锁存器 Set Reset Latch 是静态存储单元当中最基本 xff0c 也是电路结构最简单的一种 xff0c 通常由两个或非门或者与非门组成 其中S表示Set xff0c R表示Reset 则S D称为置位端或置1输入端
  • 01-RTOS

    对于裸机而言 xff0c 对于RTOS而言 即 xff1a 对于裸机 xff0c 打游戏意味着不能回消息 回消息意味着不能打游戏 对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事 xff08 但
  • uORB笔记

    不同的类调用同一函数orb subscribe ORB ID vehicle gps position xff0c 来订阅GPS信息是 xff0c 该函数返回的值不同 xff0c 也就是说每个订阅者针对同一主题 xff0c 在调用函数orb
  • STM32 SystemInit()函数学习总结

    拿到程序后如何看系统时钟 xff1f User文件夹 system stm32f4xx程序 xff0c 先找systemcoreclock 系统时钟 xff09 但是这里这么多个系统时钟应该如何选择 点击魔法棒 xff0c 然后点击C C
  • FPGA IP核之PLL四种输出模式的理解

    一 源同步模式 使得进入管脚时的数据和上升沿的相位关系与到达芯片内部第一级寄存器时数据和上升沿的相位关系保持不变 xff08 通过调整内部的布局布线延时做到的 xff0c 用于数据接口 xff0c 特别是高速的情况下 xff09 详细理解
  • FPGA_边沿监测理解

    一 简易频率计设计中为什么一定要获取下降沿 gate a 实际闸门信号 gate a stand 将实际闸门信号打一拍之后的信号 gate a fall s 下降沿标志信号 cnt clk stand Y值 xff0c 即在实际闸门信号下
  • HAL库 STM32 串口通信

    一 实验条件 将STM32的PA9复用为串口1的TX xff0c PA10复用为串口1的RX STM32芯片的输出TX和接收RX与CH340的接收RX和发送TX相连 xff08 收发交叉且PCB上默认没有相连 xff0c 所以需要用P3跳线
  • 全局变量和局部变量

    一 C语言由四种地方可以定义变量 在函数外部定义的是全局变量 xff08 这里的函数包括main函数 xff09 在头文件中定义的是全局变量 在函数或语句块内部定义的是局部变量 函数的参数是该函数的局部变量 全局变量 xff0c 在定义位置
  • 单片机中断

    蓝桥杯单片机之中断 1 中断含义及过程 中断是指CPU在处理A事情时 xff0c 发现B请求CPU立刻去处理 xff08 中断发生 xff09 xff0c 于是CPU去处理B xff08 中断服务 xff09 xff0c 处理完B后又再次回
  • AprilTag的使用、相关问题及解决方法

    使用棋盘格标定相机 安装标定功能包 span class token function sudo span span class token function apt get span span class token function i
  • 对接海康综合安防管理平台经验总结

    前言 xff1a 因业务需要对接海康威视的综合安防管理平台获得下属所管理的摄像头 xff0c 根据摄像头code获得监控视频流信息 1 详情可以浏览海康开放平台 xff0c 在官网上有对应的接入指南以及开放的API接口 前提是本地已部署了海
  • 【环境配置】Visual Studio opencv配置

    需求 在Visual Studio环境中编写C 43 43 代码 xff0c 同时可以调用OpenCV的相关代码 1 安装OpenCV 访问 opencv 官网下载对应平台的库文件 注意 xff1a Visual Studio和OpenCV
  • MySQL常见用法

    文章目录 一 时间类1 1 DATE SUB 函数1 2 NOW CURDATE CURTIME DATE 函数1 3 实战 二 统计类三 字符类3 1 LOCATE 函数3 2 concat 函数3 3 concat ws 函数3 4 g