MySQL 函数参考手册(MySQL 高级函数)

目录

[MySQL BIN() 函数](#MySQL BIN() 函数)

[MySQL BINARY 函数](#MySQL BINARY 函数)

[MySQL CASE 函数](#MySQL CASE 函数)

[MySQL CAST() 函数](#MySQL CAST() 函数)

[MySQL COALESCE() 函数](#MySQL COALESCE() 函数)

[MySQL CONNECTION_ID() 函数](#MySQL CONNECTION_ID() 函数)

[MySQL CONV() 函数](#MySQL CONV() 函数)

[MySQL CONVERT() 函数](#MySQL CONVERT() 函数)

[MySQL CURRENT_USER() 函数](#MySQL CURRENT_USER() 函数)

[MySQL DATABASE() 函数](#MySQL DATABASE() 函数)

[MySQL IF() 函数](#MySQL IF() 函数)

[MySQL IFNULL() 函数](#MySQL IFNULL() 函数)

[MySQL ISNULL() 函数](#MySQL ISNULL() 函数)

[MySQL LAST_INSERT_ID() 函数](#MySQL LAST_INSERT_ID() 函数)

[MySQL NULLIF() 函数](#MySQL NULLIF() 函数)

[MySQL SESSION_USER() 函数](#MySQL SESSION_USER() 函数)

[MySQL SYSTEM_USER() 函数](#MySQL SYSTEM_USER() 函数)

[MySQL USER() 函数](#MySQL USER() 函数)

[MySQL VERSION() 函数](#MySQL VERSION() 函数)


MySQL BIN() 函数

【实例】

返回 15 的二进制表示:

sql 复制代码
SELECT BIN(15);

【定义和用法】

BIN() 函数以字符串值的形式返回数字的二进制表示形式。

【语法】

sql 复制代码
BIN(number)

【参数值】

参数 描述
number 必需。一个数字

【技术细节】

适用于: From MySQL 4.0

【实例】

返回 111 的二进制表示:

sql 复制代码
SELECT BIN(111);

【实例】

返回 8 的二进制表示:

sql 复制代码
SELECT BIN(8);

MySQL BINARY 函数

【实例】

将值转换为二进制字符串:

sql 复制代码
SELECT BINARY "W3Schools.cn";

【定义和用法】

BINARY 函数将值转换为二进制字符串。

这个函数相当于使用CAST(value AS BINARY)。

【语法】

sql 复制代码
BINARY value

【参数值】

参数 描述
value 必需。要转换的值

【技术细节】

适用于: From MySQL 4.0

【实例】

这里 MySQL 对 "HELLO" 和 "hello" 进行逐个字符的比较并返回 1(因为逐个字符的基础上,它们是等价的):

sql 复制代码
SELECT "HELLO" = "hello";

【实例】

这里 MySQL 对 "HELLO" 和 "hello" 进行逐字节比较并返回 0(因为逐字节地,它们是不等价的):

sql 复制代码
SELECT BINARY "HELLO" = "hello";

MySQL CASE 函数

【实例】

遍历条件并在满足第一个条件时返回一个值:

sql 复制代码
SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN "The quantity is greater than 30"
    WHEN Quantity = 30 THEN "The quantity is 30"
    ELSE "The quantity is under 30"
END
FROM OrderDetails;

【定义和用法】

CASE 语句遍历条件并在满足第一个条件时返回一个值(如 IF-THEN-ELSE 语句)。 因此,一旦条件为真,它将停止读取并返回结果。

如果没有条件为真,它将返回 ELSE 子句中的值。

如果没有ELSE部分且没有条件为真,则返回NULL。

【语法】

sql 复制代码
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

【参数值】

参数 描述
condition1, condition2, ...conditionN 必需。条件。 它们的评估顺序与列出的顺序相同
result1, result2, ...resultN 必需。条件为真时返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

以下 SQL 将按城市对客户进行排序。 但是,如果 City 为 NULL,则按 Country 排序:

sql 复制代码
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

MySQL CAST() 函数

【实例】

将值转换为 DATE 数据类型:

sql 复制代码
SELECT CAST("2017-08-29" AS DATE);

【定义和用法】

CAST() 函数将一个值(任何类型)转换为指定的数据类型。

注:另见CONVERT()函数。

【语法】

sql 复制代码
CAST(value AS datatype)

【参数值】

参数 描述
value 必需。要转换的值
datatype 必需。要转换成的数据类型。可以是以下之一:

【技术细节】

适用于: From MySQL 4.0

【实例】

将值转换为 CHAR 数据类型:

sql 复制代码
SELECT CAST(150 AS CHAR);

【实例】

将值转换为 TIME 数据类型:

sql 复制代码
SELECT CAST("14:06:10" AS TIME);

【实例】

将值转换为 SIGNED 数据类型:

sql 复制代码
SELECT CAST(5-10 AS SIGNED);

MySQL COALESCE() 函数

【实例】

返回列表中的第一个非空值:

sql 复制代码
SELECT COALESCE(NULL, NULL, NULL, 'W3Schools.cn', NULL, 'Example.com');

【定义和用法】

COALESCE() 函数返回列表中的第一个非空值。

【语法】

sql 复制代码
COALESCE(val1, val2, ...., val_n)

【参数值】

参数 描述
val1, val2, val_n 必需。要测试的值

【技术细节】

适用于: From MySQL 4.0

【实例】

返回列表中的第一个非空值:

sql 复制代码
SELECT COALESCE(NULL, 1, 2, 'W3Schools.cn');

MySQL CONNECTION_ID() 函数

【实例】

返回当前连接的唯一连接 ID:

sql 复制代码
SELECT CONNECTION_ID();

【定义和用法】

CONNECTION_ID() 函数返回当前连接的唯一连接 ID。

【语法】

sql 复制代码
CONNECTION_ID()

【技术细节】

适用于: From MySQL 4.0

MySQL CONV() 函数

【实例】

将数字从数字基系统 10 转换为数字基系统 2:

sql 复制代码
SELECT CONV(15, 10, 2);

【定义和用法】

CONV() 函数将一个数字从一个数字基系统转换为另一个,并将结果作为字符串值返回。

注:如果任何参数为 NULL,此函数将返回 NULL。同时查看BIN()函数。

【语法】

sql 复制代码
CONV(number, from_base, to_base)

【参数值】

参数 描述
number 必需。一个数字
from_base number的数字基系统(2到36之间的数字)
to_base 要转换为的数字基系统(2 到 36 或 -2 到 -36 之间的数字)

【技术细节】

适用于: From MySQL 4.0

【实例】

将数字从数字基系统 2 转换为数字基系统 10:

sql 复制代码
SELECT CONV(1111, 2, 10);

【实例】

将数字从数字基系统 10 转换为数字基系统 16:

sql 复制代码
SELECT CONV(88, 10, 16);

MySQL CONVERT() 函数

【实例】

将值转换为 DATE 数据类型:

sql 复制代码
SELECT CONVERT("2017-08-29", DATE);

【定义和用法】

CONVERT() 函数将值转换为指定的数据类型或字符集。

注:同时查看CAST()函数。

【语法】

sql 复制代码
CONVERT(value, type)

或者:

sql 复制代码
CONVERT(value USING charset)

【参数值】

参数 描述
value 必需。 要转换的值
type 必需。要转换成的数据类型。可以是以下之一:
charset 必须。要转换成的字符集

【技术细节】

适用于: From MySQL 4.0

【实例】

将值转换为 CHAR 数据类型:

sql 复制代码
SELECT CONVERT(150, CHAR);

【实例】

将值转换为 TIME 数据类型:

sql 复制代码
SELECT CONVERT("14:06:10", TIME);

【实例】

将值转换为 LATIN1 字符集:

sql 复制代码
SELECT CONVERT("W3Schools.cn" USING latin1);

MySQL CURRENT_USER() 函数

【实例】

返回 MySQL 账户的用户名和主机名:

sql 复制代码
SELECT CURRENT_USER();

【定义和用法】

CURRENT_USER() 函数返回服务器用来验证当前客户端的 MySQL 帐户的用户名和主机名。

结果以 UTF8 字符集的字符串形式返回。

注:另见USER()函数。

【语法】

sql 复制代码
CURRENT_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL DATABASE() 函数

【实例】

返回当前(默认)数据库的名称:

sql 复制代码
SELECT DATABASE();

【定义和用法】

DATABASE() 函数返回当前数据库的名称。

如果当前没有数据库,这个函数返回NULL或""。

【语法】

sql 复制代码
DATABASE()

【技术细节】

适用于: From MySQL 4.0

MySQL IF() 函数

【实例】

如果条件为 TRUE,则返回 "YES",如果条件为 FALSE,则返回 "NO":

sql 复制代码
SELECT IF(500<1000, "YES", "NO");

【定义和用法】

如果条件为 TRUE,IF() 函数返回一个值,如果条件为 FALSE,则返回另一个值。

【语法】

sql 复制代码
IF(condition, value_if_true, value_if_false)

【参数值】

参数 描述
condition 必需。 要测试的值
value_if_true 可选。 condition为真时返回的值
value_if_false 可选。 condition为假时返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

如果条件为 TRUE,则返回 5,如果条件为 FALSE,则返回 10:

sql 复制代码
SELECT IF(500<1000, 5, 10);

【实例】

测试两个字符串是否相同,如果相同则返回 "YES",否则返回 "NO":

sql 复制代码
SELECT IF(STRCMP("hello","bye") = 0, "YES", "NO");

【实例】

如果条件为 TRUE,则返回 "MORE",如果条件为 FALSE,则返回 "LESS":

sql 复制代码
SELECT OrderID, Quantity, IF(Quantity>10, "MORE", "LESS")
FROM OrderDetails;

MySQL IFNULL() 函数

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

sql 复制代码
SELECT IFNULL(NULL, "W3Schools.cn");

【定义和用法】

IFNULL() 函数在表达式为 NULL 时返回指定值。

如果表达式不为空,则此函数返回表达式。

【语法】

sql 复制代码
IFNULL(expression, alt_value)

【参数值】

参数 描述
expression 必需。判断是否为NULL的表达式
alt_value 必需。如果 expression 为 NULL,则返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

sql 复制代码
SELECT IFNULL("Hello", "W3Schools.cn");

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

sql 复制代码
SELECT IFNULL(NULL, 500);

MySQL ISNULL() 函数

【实例】

测试一个表达式是否为NULL:

sql 复制代码
SELECT ISNULL(NULL);

【定义和用法】

ISNULL() 函数根据表达式是否为 NULL 返回 1 或 0。

如果表达式为NULL,则该函数返回1。否则,返回0。

【语法】

sql 复制代码
ISNULL(expression)

【参数值】

参数 描述
expression 必需。 要测试的值

【技术细节】

适用于: From MySQL 4.0

【实例】

测试一个表达式是否为NULL:

sql 复制代码
SELECT ISNULL("");

【实例】

测试一个表达式是否为NULL:

sql 复制代码
SELECT ISNULL(350);

【实例】

测试一个表达式是否为NULL:

sql 复制代码
SELECT ISNULL("Hello world!");

MySQL LAST_INSERT_ID() 函数

【实例】

返回表中已插入或更新的最后一行的 AUTO_INCREMENT id:

sql 复制代码
SELECT LAST_INSERT_ID();

【定义和用法】

LAST_INSERT_ID() 函数返回表中已插入或更新的最后一行的 AUTO_INCREMENT id。

【语法】

sql 复制代码
LAST_INSERT_ID(expression)

【参数值】

参数 描述
expression 可选。一个表达式

【技术细节】

适用于: From MySQL 4.0

MySQL NULLIF() 函数

【实例】

比较两个表达式:

sql 复制代码
SELECT NULLIF(25, 25);

【定义和用法】

NULLIF() 函数比较两个表达式,如果相等则返回 NULL。 否则,返回第一个表达式。

【语法】

sql 复制代码
NULLIF(expr1, expr2)

【参数值】

参数 描述
expr1, expr2 必需。要比较的两个表达式

【技术细节】

适用于: From MySQL 4.0

【实例】

比较两个表达式:

sql 复制代码
SELECT NULLIF(25, "Hello");

【实例】

比较两个表达式:

sql 复制代码
SELECT NULLIF("Hello", "world");

【实例】

比较两个表达式:

sql 复制代码
SELECT NULLIF("2017-08-25", "2017-08-25");

MySQL SESSION_USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

sql 复制代码
SELECT SESSION_USER();

【定义和用法】

SESSION_USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 这个函数等于 SYSTEM_USER() 和 USER() 函数。

【语法】

sql 复制代码
SESSION_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL SYSTEM_USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

sql 复制代码
SELECT SYSTEM_USER();

【定义和用法】

SYSTEM_USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 此函数等同于 SESSION_USER() 函数和 USER( ) 函数。

【语法】

sql 复制代码
SYSTEM_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

sql 复制代码
SELECT USER();

【定义和用法】

USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 此函数等同于 SESSION_USER() 函数和 SYSTEM_USER( ) 函数。同时查看 CURRENT_USER() 函数。

【语法】

sql 复制代码
USER()

【技术细节】

适用于: From MySQL 4.0

MySQL VERSION() 函数

【实例】

返回 MySQL 数据库的当前版本:

sql 复制代码
SELECT VERSION();

【定义和用法】

VERSION() 函数以字符串形式返回 MySQL 数据库的当前版本。

【语法】

sql 复制代码
VERSION()

【技术细节】

适用于: From MySQL 4.0
相关推荐
逸巽散人1 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky1 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
m0_689618282 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记
Ace'2 小时前
每日一题&&学习笔记
笔记·学习
挥剑决浮云 -2 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
Mephisto.java2 小时前
【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
sql·算法·leetcode
新晓·故知3 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
魔理沙偷走了BUG4 小时前
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
笔记·数学分析
-seventy-4 小时前
SQL语句 (MySQL)
sql·mysql