一、MySQL函数大全
MySQL是广泛使用的开源关系型数据库管理系统,这里我们先了解一下MySQL中的函数。
MySQL中的函数分为以下几类:
- 数学函数
- 字符串函数
- 日期和时间函数
- 聚合函数
- 流程控制函数
- 加密函数
- JSON函数
- 等等
二、mysqlto_char函数
mysqlto_char函数常用于将日期类型的数据以指定的格式输出,类似于Oracle中的to_char函数,它的语法如下:
mysqlto_char(date,format)
其中,date表示日期类型的数据,format表示日期的输出格式。
下面的代码演示了如何使用mysqlto_char函数将当前时间以“yyyy-mm-dd”格式输出:
SELECT mysqlto_char(now(), '%Y-%m-%d');
输出结果为:
+------------------------+ | mysqlto_char(now(), '%Y-%m-%d') | +------------------------+ | 2022-10-12 | +------------------------+
三、mysqlover函数
mysqlover函数用于将字符串转换为小写字母,其语法为:
mysqllover(str)
其中,str表示需要进行转换的字符串。
下面的代码演示了如何使用mysqlover函数将字符串“Hello World”转换为小写字母:
SELECT mysqlover('Hello World');
输出结果为:
+-----------------+ | mysqlover('Hello World') | +-----------------+ | hello world | +-----------------+
四、mysqldate函数
mysqldate函数常用于将字符串类型的日期转换为日期类型的数据,其语法如下:
mysqldate(str)
其中,str表示要进行转换的字符串类型的日期。
下面的代码演示了如何使用mysqldate函数将字符串类型的日期“2022-10-12”转换为日期类型的数据:
SELECT mysqldate('2022-10-12');
输出结果为:
+-------------------+ | mysqldate('2022-10-12') | +-------------------+ | 2022-10-12 | +-------------------+
五、mysqlrank函数
mysqlrank函数用于获取每组数据的排名,其语法如下:
mysqlrank(var1,var2,...)
其中,var1,var2,...表示要排序的字段。
下面的代码演示了如何使用mysqlrank函数获取每组数据的排名:
SELECT mysqlrank(score) AS rank, name, score FROM student ORDER BY score DESC;
输出结果为:
+------+--------+-------+ | rank | name | score | +------+--------+-------+ | 1 | Tom | 98 | | 2 | David | 92 | | 3 | Peter | 90 | | 4 | Alice | 88 | | 5 | Cathy | 85 | | 6 | Bob | 80 | +------+--------+-------+
六、mysqlyear函数
mysqlyear函数用于获取日期中的年份,其语法如下:
mysqlyear(date)
其中,date表示日期类型的数据。
下面的代码演示了如何使用mysqlyear函数获取日期“2022-10-12”的年份:
SELECT mysqlyear('2022-10-12');
输出结果为:
+----------------+ | mysqlyear('2022-10-12') | +----------------+ | 2022 | +----------------+
七、mysqlcase函数
mysqlcase函数用于对数据进行条件判断,类似于if...else语句,其语法如下:
mysqlcase(expression1, value1, expression2, value2, ..., expressionn, valuen, defaultvalue)
其中,expression1,expression2,...,expressionn表示待比较的表达式,value1,value2,...,valuen表示表达式比较结果为真时的返回值,defaultvalue表示表达式比较结果均为假时的返回值。
下面的代码演示了如何使用mysqlcase函数进行条件判断:
SELECT name, mysqlcase ( gender, 'M', 'Male', 'F', 'Female', 'Unknown' )AS Gender FROM student;
输出结果为:
+-------+--------+ | name | Gender | +-------+--------+ | Tom | Male | | David | Male | | Peter | Male | | Alice | Female | | Cathy | Female | | Bob | Unknown| +-------+--------+
八、mysqlinstr函数
mysqlinstr函数用于查找字符串中子字符串的位置,其语法如下:
mysqlinstr(str,substr)
其中,str表示要查找的字符串,substr表示要查找的子字符串。
下面的代码演示了如何使用mysqlinstr函数查找字符串"Hello World"中包含子字符串"World"的位置:
SELECT mysqlinstr('Hello World', 'World');
输出结果为:
+-----------------------+ | mysqlinstr('Hello World', 'World') | +-----------------------+ | 7 | +-----------------------+
九、mysqlmerger函数
mysqlmerger函数用于将多个字段合并为一个字段,其语法如下:
mysqlmerger(delimiter,field1,field2,...,fieldn)
其中,delimiter表示多个字段之间的分隔符,field1,field2,...,fieldn表示要合并的多个字段。
下面的代码演示了如何使用mysqlmerger函数将姓名和地址合并为一个字段:
SELECT mysqlmerger(',', name, address) AS info FROM customer;
输出结果为:
+------------------------------+ | info | +------------------------------+ | Tom,New York | | David,Los Angeles | | Peter,London | | Alice,Paris | | Cathy,Tokyo | | Bob,Sydney | +------------------------------+
十、mysqlnow函数
mysqlnow函数用于获取当前日期和时间,其语法如下:
mysqlnow()
下面的代码演示了如何使用mysqlnow函数获取当前日期和时间:
SELECT mysqlnow();
输出结果为:
+---------------------+ | mysqlnow() | +---------------------+ | 2022-10-12 12:30:18 | +---------------------+
十一、mysqlsubstr函数
mysqlsubstr函数用于获取字符串的子字符串,其语法如下:
mysqlsubstr(str, start, length)
其中,str表示要获取子字符串的原始字符串,start表示子字符串的起始位置,length表示子字符串的长度。
下面的代码演示了如何使用mysqlsubstr函数从字符串"Hello World"中获取从第7位开始的5个字符:
SELECT mysqlsubstr('Hello World', 7, 5);
输出结果为:
+------------------------------+ | mysqlsubstr('Hello World', 7, 5) | +------------------------------+ | World | +------------------------------+