首页 > 数据库 >Mysql常用函数

Mysql常用函数

时间:2024-07-25 15:26:55浏览次数:12  
标签:常用 函数 DATE 日期 Mysql 字符串 SELECT name

1、FIND_IN_SET

FIND_IN_SET() 是一个 MySQL 中的字符串函数,用于在一个由逗号分隔的字符串列表中查找指定字符串的位置。如果找到了指定的字符串,FIND_IN_SET() 将返回该字符串在列表中的位置(索引值)。如果没有找到,它将返回 0。
其语法如下:

FIND_IN_SET(str, strlist)
  • str: 要在列表中查找的字符串。
  • strlist: 用逗号分隔的字符串列表。

例如,考虑以下情况:

SELECT FIND_IN_SET('apple', 'orange,banana,apple');

此查询将返回 3,因为 ‘apple’ 在列表 ‘orange,banana,apple’ 中的位置是第三个元素。

FIND_IN_SET() 经常用于需要从一组预定义的选项中查找或验证特定值的情况,特别是在处理多选字段或多对多关系的数据时。例如,在人力资源管理系统的应聘者信息中,可能需要根据应聘者技能与岗位所需技能的匹配度进行筛选,这时 FIND_IN_SET() 就能派上用场了。

值得注意的是,FIND_IN_SET() 不区分大小写,且如果列表中有重复的字符串,函数将返回第一个出现的字符串位置。此外,由于其内部实现的原因,FIND_IN_SET() 在处理非常长的字符串列表时可能会表现不佳,因此在设计数据库结构时,应该考虑其性能影响

2、GROUP_CONCAT

GROUP_CONCAT 是 SQL 中的一个聚合函数,用于将同一组中的多个值连接成一个字符串。这个函数通常与 GROUP BY 语句一起使用,将属于同一组的多行数据的指定列值组合到一起,形成一个单独的、由指定分隔符分隔的字符串。

GROUP_CONCAT 的基本语法如下:

GROUP_CONCAT([DISTINCT] expr [ORDER BY {unsigned_integer | col_name | expr}]
      [SEPARATOR str_val])
  • expr:要连接的列或表达式的名称。
  • DISTINCT(可选):如果使用,GROUP_CONCAT 将只包含唯一的值。
  • ORDER BY(可选):用于指定结果字符串中值的顺序。
  • SEPARATOR(可选):用于在连接的值之间插入一个字符串作为分隔符,默认通常是逗号。

例如,假设有以下的 employees 表:

emp_iddept_idname
110mike
210jen
320finoa

如果我们想得到每个部门的员工名单,可以使用以下 SQL 查询:

SELECT dept_id, GROUP_CONCAT(name SEPARATOR ', ') AS employee_list
FROM employees
GROUP BY dept_id;
dept_idname
10mike,jen
20finoa

这样,我们就可以方便地获得一个汇总的字符串,显示每个部门的员工姓名列表。这对于生成报告或进行数据分析特别有用。

3、DATE_SUB

DATE_SUB() 是 SQL 中的一个日期函数,主要用于从给定的日期中减去一段时间间隔。这个函数在 MySQL 中特别常见,它允许用户基于特定的时间单位(如天、小时、分钟等)来计算过去的某个日期或时间点。
DATE_SUB() 函数的基本语法如下:

DATE_SUB(date, INTERVAL expr unit)
  • date:这是起始日期或时间,可以是日期类型的列名或者直接的日期字面量。
  • expr:是要减去的数值,即间隔的数量。
  • unit:定义了间隔的时间单位,可能的单位包括:
    SECOND
    MINUTE
    HOUR
    DAY
    WEEK
    MONTH
    QUARTER
    YEAR

例如,如果你想从当前日期减去 5 天,你可以使用下面的 SQL 语句:

SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY);

这将返回当前日期之前 5 天的日期。

4、MySQL 常用函数整理

MySQL 提供了大量的内置函数来帮助您执行各种数据处理任务。下面是按类别划分的一些常用函数。

1、字符串函数

函数名描述示例
CONCAT()连接两个或多个字符串SELECT CONCAT('Hello', ' ', 'World');
LOWER()将字符串转换为小写SELECT LOWER('HELLO WORLD');
UPPER()将字符串转换为大写SELECT UPPER('hello world');
LENGTH()返回字符串的长度SELECT LENGTH('Hello');
SUBSTRING()返回字符串的一部分SELECT SUBSTRING('Hello World', 7, 5);
TRIM()删除字符串两端的空格SELECT TRIM(' Hello ');
REPLACE()替换字符串中的部分字符SELECT REPLACE('Hello World', 'World', 'Universe');
LOCATE()查找一个字符串在另一个字符串中的位置SELECT LOCATE('World', 'Hello World');

2、数学函数

函数名描述示例
ABS()返回数值的绝对值SELECT ABS(-10);
ROUND()四舍五入到指定的小数位数SELECT ROUND(10.567, 2);
FLOOR()返回不大于给定数值的最大整数SELECT FLOOR(10.99);
CEIL()返回不小于给定数值的最小整数SELECT CEIL(10.01);
RAND()返回 0 到 1 之间的随机数SELECT RAND();
PI()返回 π 的值SELECT PI();
MOD()返回除法运算的余数SELECT MOD(10, 3);

3、日期和时间函数

函数名描述示例
NOW()返回当前日期和时间SELECT NOW();
CURDATE()返回当前日期SELECT CURDATE();
CURTIME()返回当前时间SELECT CURTIME();
DATE_ADD()添加指定的时间间隔SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
DATE_SUB()减去指定的时间间隔SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
TIMESTAMPDIFF()计算两个日期之间的时间间隔SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-07-01');
DATEDIFF()计算两个日期之间的天数差SELECT DATEDIFF('2024-07-01', '2024-01-01');
DATE_FORMAT()格式化日期和时间SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

4、转换函数

函数名描述示例
CAST()将表达式转换为指定的数据类型SELECT CAST('123' AS INT);
STR_TO_DATE()将字符串转换为日期SELECT STR_TO_DATE('2024-07-25', '%Y-%m-%d');
TO_DAYS()将日期转换为天数SELECT TO_DAYS('2024-07-25');
FROM_UNIXTIME()将 Unix 时间戳转换为日期和时间SELECT FROM_UNIXTIME(1689519600);

5、条件函数

函数名描述示例
IF()返回基于条件的结果SELECT IF(1 > 2, 'Yes', 'No');
CASE根据条件返回不同的值SELECT CASE WHEN 1 > 2 THEN 'Yes' ELSE 'No' END;
COALESCE()返回第一个非 NULL 的参数SELECT COALESCE(NULL, NULL, 'Default');

6、组合与聚合函数

函数名描述示例
COUNT()计算行数SELECT COUNT(*) FROM table_name;
SUM()计算数值总和SELECT SUM(column_name) FROM table_name;
AVG()计算数值平均值SELECT AVG(column_name) FROM table_name;
MIN()找出最小值SELECT MIN(column_name) FROM table_name;
MAX()找出最大值SELECT MAX(column_name) FROM table_name;

标签:常用,函数,DATE,日期,Mysql,字符串,SELECT,name
From: https://blog.csdn.net/weixin_44990907/article/details/140667651

相关文章

  • Mybatis常用动态标签
    MyBatis动态SQL标签指南MyBatis提供了一组动态SQL处理功能,允许在运行时构建SQL语句。这非常有用,因为你可以根据不同的条件组合查询。下面是常用的动态SQL标签及其使用方法。<if>标签作用:根据表达式的结果决定是否包含某个SQL片段。属性:test属性用于设置判......
  • Cython与C函数的结合
    技术背景在前面一篇博客中,我们介绍了使用Cython加速谐振势计算的方法。有了Cython对于计算过程更加灵活的配置(本质上是时间占用和空间占用的一种均衡),及其接近于C的性能,并且还最大程度上的保留了Python的编程语法特点,因此Cython确实是值得Python编程爱好者学习的一种加速手段。这......
  • C++(构造函数参数列表初始化)
    目录1.构造函数参数列表初始化的语法2.为什么使用参数列表初始化3.示例4.常量和引用成员的示例5.使用参数列表初始化的注意事项6.总结在C++中,构造函数参数列表初始化(initializerlist)是一种用于在对象创建时初始化成员变量的语法。这种方式在性能和可读性方面具有一些优势,......
  • C语言【面试】常用知识点总结之常用易错易混点解析
    第二部分:程序代码评价或者找错有符号整型和无符号整型混合运算时,有符号型自动转换成无符号型,运算的结果是无符号的。如果参与运算的数据类型不同,会自动转化为同一类再运算,这就是自动转换自动转换的规则如下:1.当参与运算的数据的类型不同时,编译系统会自动先将他们转换成......
  • 【学习笔记】构造函数、原型对象、原型链
    在JavaScript中,每个对象都有一个原型对象,原型对象也是一个对象,它包含了对象的共享属性和方法。每个构造函数(除了箭头函数)都有一个prototype属性,该属性指向构造函数的原型对象。当我们使用构造函数创建一个新对象时,该对象会继承构造函数的原型对象中的属性和方法,这种继承关系......
  • STL 容器以及各函数及其复杂度
    主要是实质、函数、性质。如果没有特殊提出,那么是常数复杂度。vector相当于变长数组。支持随机访问(可以直接查询\(v_i\)),但是不任意位置\(O(1)\)插入。通常为了保证效率,只在末尾加入删除元素。size:返回实际长度(通常声明的长度会大于实际长度),也就是包含的元素个数。empty:......
  • Java8 函数式编程和Lambda
    lambda初识lambda表达式一个简单的方法,比较两个Integer:publicvoidTest1(){ Comparator<Integer>com=newComparator<Integer>(){ @Override publicintcompare(Integero1,Integero2){ returnInteger.compare(o1,o2); } }; TreeSet<Integer>......
  • Mysql 函数 (进阶介绍 八)
    目录MySQLCURTIME()函数定义和用法语法实例MySQLDATE()函数定义和用法语法实例MySQLEXTRACT()函数定义和用法语法实例MySQL字符串连接CONCAT()函数使用方法:MySQL字符串截取SUBSTRING()函数 使用方法:MySQL数学函数使用方法:mysqlsubstr()函数截......
  • 常用端口申请IP SSL实现https教程
    在网络安全和数据保护方面,使用HTTPS协议来保护网站和应用程序的通信变得至关重要。一般情况下,HTTPS证书是基于域名签发的。但是,有时候我们可能需要为IP地址申请HTTPS证书,在一些特殊场景下确保通信的安全性。IPSSL证书也是SSL证书的一种,因其是颁发给IP地址使用的,所以我们......
  • Linux常用命令总结
    基础命令文件管理命令cata.txt#显示文本文件的内容cat-na.txt#显示文本文件的内容(并显示行号)cat-Aa.txt#显示文本文件的内容(含不可见字符)head/tail-na.txt#查看指定文件的头部/尾部内容less/more-na.txt#以分页方式查看长文件od-xa.txt#以十六进......