diff --git a/dev/reference/sql/functions-and-operators/bit-functions-and-operators.md b/dev/reference/sql/functions-and-operators/bit-functions-and-operators.md index 2aec09c475ab..9d44c9caf9af 100644 --- a/dev/reference/sql/functions-and-operators/bit-functions-and-operators.md +++ b/dev/reference/sql/functions-and-operators/bit-functions-and-operators.md @@ -5,7 +5,7 @@ category: reference # 位函数和操作符 -TiDB 中位函数和操作符的使用方法与 MySQL 基本一致,详情参见: [Bit Functions and Operators](https://dev.mysql.com/doc/refman/5.7/en/bit-functions.html)。 +TiDB 支持使用 MySQL 5.7 中提供的所有[位函数和操作符](https://dev.mysql.com/doc/refman/5.7/en/bit-functions.html)。 **位函数和操作符表** diff --git a/dev/reference/sql/functions-and-operators/cast-functions-and-operators.md b/dev/reference/sql/functions-and-operators/cast-functions-and-operators.md index d512f1faf7bf..8a6efeacdb27 100644 --- a/dev/reference/sql/functions-and-operators/cast-functions-and-operators.md +++ b/dev/reference/sql/functions-and-operators/cast-functions-and-operators.md @@ -5,7 +5,7 @@ category: reference # Cast 函数和操作符 -Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 中该函数和操作符的使用方法与 MySQL基本一致,详情参见: [Cast Functions and Operators](https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html). +Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 支持使用 MySQL 5.7 中提供的所有 [Cast 函数和操作符](https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html)。 ## Cast 函数和操作符表 diff --git a/dev/reference/sql/functions-and-operators/control-flow-functions.md b/dev/reference/sql/functions-and-operators/control-flow-functions.md index 6297065acf9c..407a57690777 100644 --- a/dev/reference/sql/functions-and-operators/control-flow-functions.md +++ b/dev/reference/sql/functions-and-operators/control-flow-functions.md @@ -5,6 +5,8 @@ category: reference # 控制流程函数 +TiDB 支持使用 MySQL 5.7 中提供的所有[控制流程函数](https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html)。 + | 函数名 | 功能描述 | |:--------------------------------------------------------------------------------------------------|:----------------------------------| | [`CASE`](https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#operator_case) | Case 操作符 | diff --git a/dev/reference/sql/functions-and-operators/date-and-time-functions.md b/dev/reference/sql/functions-and-operators/date-and-time-functions.md index 1de572c6abad..e9bf3ab4b279 100644 --- a/dev/reference/sql/functions-and-operators/date-and-time-functions.md +++ b/dev/reference/sql/functions-and-operators/date-and-time-functions.md @@ -5,7 +5,7 @@ category: reference # 日期和时间函数 -TiDB 中日期和时间函数的使用方法与 MySQL 基本一致,详情参见: [Date and Time Functions](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html). +TiDB 支持使用 MySQL 5.7 中提供的所有[日期和时间函数](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html)。 ## 日期时间函数表 diff --git a/dev/reference/sql/functions-and-operators/encryption-and-compression-functions.md b/dev/reference/sql/functions-and-operators/encryption-and-compression-functions.md index 0db5cde147b2..34b2a6bbd8fa 100644 --- a/dev/reference/sql/functions-and-operators/encryption-and-compression-functions.md +++ b/dev/reference/sql/functions-and-operators/encryption-and-compression-functions.md @@ -5,6 +5,10 @@ category: reference # 加密和压缩函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[加密和压缩函数](https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:-----------|:----------------------------| | [`MD5()`](https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html#function_md5)                                                             | 计算字符串的 MD5 校验和       | @@ -26,3 +30,9 @@ category: reference | [`ASYMMETRIC_ENCRYPT()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-encrypt) | 使用公钥或私钥加密明文 | | [`ASYMMETRIC_SIGN()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-sign) | 从摘要创建签名 | | [`ASYMMETRIC_VERIFY()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-verify) | 验证签名字符串是否匹配摘要字符串 | + +## 不支持的函数 + +* `DES_DECRYPT()`、`DES_ENCRYPT()`、`OLD_PASSWORD()` 和 `ENCRYPT()`:这些函数在 MySQL 5.7 中被废弃,并且已在 MySQL 8.0 中移除。 +* `VALIDATE_PASSWORD_STRENGTH()` 函数。 +* 只在 MySQL 企业版中支持的函数。见 [Issue #2632](https://github.com/pingcap/tidb/issues/2632)。 \ No newline at end of file diff --git a/dev/reference/sql/functions-and-operators/information-functions.md b/dev/reference/sql/functions-and-operators/information-functions.md index c190910a094f..b3ec39c0d40a 100644 --- a/dev/reference/sql/functions-and-operators/information-functions.md +++ b/dev/reference/sql/functions-and-operators/information-functions.md @@ -5,20 +5,28 @@ category: reference # 信息函数 -TiDB 中信息函数的使用方法与 MySQL 基本一致,详情参见:[Information Functions](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html)。 +TiDB 支持使用 MySQL 5.7 中提供的大部分[信息函数](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html)。 -## 信息函数表 +## 支持的函数 | 函数名 | 功能描述 | | ------ | ---------------------------------------- | +| [`BENCHMARK()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_benchmark) | 循环执行一个表达式 | | [`CONNECTION_ID()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_connection-id) | 返回当前连接的连接 ID (线程 ID) | | [`CURRENT_USER()`, `CURRENT_USER`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_current-user) | 返回当前用户的用户名和主机名 | | [`DATABASE()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_database) | 返回默认(当前)的数据库名 | | [`FOUND_ROWS()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_found-rows) | 该函数返回对于一个包含 LIMIT 的 SELECT 查询语句,在不包含 LIMIT 的情况下回返回的记录数 | | [`LAST_INSERT_ID()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_last-insert-id) | 返回最后一条 INSERT 语句中自增列的值 | +| [`ROW_COUNT()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_row-count) | 影响的行数 | | [`SCHEMA()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_schema) | 与 DATABASE() 同义 | | [`SESSION_USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_session-user) | 与 USER() 同义 | | [`SYSTEM_USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_system-user) | 与 USER() 同义 | | [`USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_user) | 返回客户端提供的用户名和主机名 | | [`VERSION()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_version) | 返回当前 MySQL 服务器的版本信息 | | `TIDB_VERSION()` | 返回当前 TiDB 服务器的版本信息 | + +## 不支持的函数 + +* `CHARSET()` +* `COERCIBILITY()` +* `COLLATION()` diff --git a/dev/reference/sql/functions-and-operators/miscellaneous-functions.md b/dev/reference/sql/functions-and-operators/miscellaneous-functions.md index 6bfe47de9f79..d5dc76932294 100644 --- a/dev/reference/sql/functions-and-operators/miscellaneous-functions.md +++ b/dev/reference/sql/functions-and-operators/miscellaneous-functions.md @@ -5,12 +5,14 @@ category: reference # 其他函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[其他函数](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:------|:-----------| | [`ANY_VALUE()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_any-value) | 在 `ONLY_FULL_GROUP_BY` 模式下,防止带有 `GROUP BY` 的语句报错 | -| [`SLEEP()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep) | 休眠指定秒数 | -| [`UUID()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid) | 返回通用唯一识别码 (UUID) | -| [`VALUES()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values) | 定义 `INSERT` 过程中要用到的值 | +| [`DEFAULT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_default) | 返回表的某一列的默认值 | | [`INET_ATON()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet-aton) | 将 IP 地址转换为数值 | | [`INET_NTOA()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet-ntoa) | 将数值转换为 IP 地址 | | [`INET6_ATON()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet6-aton) | 将 IPv6 地址转换为数值   | @@ -19,5 +21,14 @@ category: reference | [`IS_IPV4_COMPAT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv4-compat) | 判断参数是否为兼容 IPv4 的地址 | | [`IS_IPV4_MAPPED()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv4-mapped) | 判断参数是否为 IPv4 映射的地址 | | [`IS_IPV6()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv6) | 判断参数是否为 IPv6 地址 | -| [`GET_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock)   | 获取命名锁,TiDB     出于兼容性支持这个函数,实际上不会做任何操作,这点和 MySQL 有区别 | -| [`RELEASE_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_release-lock) | 释放命名锁 | +| [`NAME_CONST()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_name-const) | 可以用于重命名列名 | +| [`SLEEP()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep) | 让语句暂停执行几秒时间 | +| [`UUID()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid) | 返回一个通用唯一识别码 (UUID) | +| [`VALUES()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values) | 定义 `INSERT` 语句使用的值 | + +## 不支持的函数 + +| [`GET_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock) | 获取命名锁,详见 [TiDB #10929](https://github.com/pingcap/tidb/issues/10929) | +| [`RELEASE_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_release-lock) | 释放命名锁,详见 [TiDB #10929](https://github.com/pingcap/tidb/issues/10929) | +| [`UUID_SHORT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid-short) | 基于特定假设提供唯一的 UUID,目前这些假设在 TiDB 中不存在,详见 [TiDB #4620](https://github.com/pingcap/tidb/issues/4620) | +| [`MASTER_WAIT_POS()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_master-pos-wait) | 与 MySQL 同步相关 | \ No newline at end of file diff --git a/dev/reference/sql/functions-and-operators/numeric-functions-and-operators.md b/dev/reference/sql/functions-and-operators/numeric-functions-and-operators.md index 8e43902d5410..afd6772b2ad4 100644 --- a/dev/reference/sql/functions-and-operators/numeric-functions-and-operators.md +++ b/dev/reference/sql/functions-and-operators/numeric-functions-and-operators.md @@ -5,6 +5,8 @@ category: reference # 数值函数与操作符 +TiDB 支持使用 MySQL 5.7 中提供的所有[数值函数与操作符](https://dev.mysql.com/doc/refman/5.7/en/numeric-functions.html)。 + ## 算术操作符 | 操作符名 | 功能描述 | diff --git a/dev/reference/sql/functions-and-operators/string-functions.md b/dev/reference/sql/functions-and-operators/string-functions.md index 6197b751978c..6ebc49116845 100644 --- a/dev/reference/sql/functions-and-operators/string-functions.md +++ b/dev/reference/sql/functions-and-operators/string-functions.md @@ -5,67 +5,69 @@ category: reference # 字符串函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[字符串函数](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:----------|:-----------------------| | [`ASCII()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ascii) | 返回最左字符的数值 | -| [`CHAR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char)    | 返回由整数的代码值所给出的字符组成的字符串   | | [`BIN()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bin) | 返回一个数的二进制值的字符串表示 | -| [`HEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_hex) | 返回十进制值或字符串值的十六进制表示 | -| [`OCT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_oct) | 返回一个数的八进制值的字符串表示 | -| [`UNHEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_unhex) | 返回 HEX 表示的数字所代表的字符串 | -| [`TO_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_to-base64) | 返回转换为 BASE64 的字符串参数 | -| [`FROM_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_from-base64) | 解码为 BASE64 的字符串并返回结果 | -| [`LOWER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lower) | 返回小写字母的字符 | -| [`LCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lcase) | 与 `LOWER()` 功能相同 | -| [`UPPER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_upper) | 返回大写字母的字符 | -| [`UCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ucase) | 与 `UPPER()` 功能相同 | -| [`LPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad)                           | 返回左边由指定字符串填充的字符串参数                                                                         | -| [`RPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rpad)                           | 返回右边由指定字符串填充的字符串参数                                                                                               | -| [`TRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim) | 删除字符串的前缀和后缀 | -| [`LTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ltrim)                         | 删除前面的空格字符                                                                                                             | -| [`RTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rtrim) | 删除结尾的空格字符 | -| [`BIT_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bit-length)               | 返回字符串的位长度                                                                                                       | -| [`CHAR_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char-length)             | 返回字符串的字符长度                                                                                                   | -| [`CHARACTER_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_character-length) | 与 `CHAR_LENGTH()` 功能相同 | -| [`LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_length)                       | 返回字符串的字节长度                                                                                                   | -| [`OCTET_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_octet-length) | 与 `LENGTH()` 功能相同 | -| [`INSERT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_insert) | 在指定位置插入一个子字符串,直到指定的字符数 | -| [`REPLACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace) | 替换指定的字符串 | -| [`SUBSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substr) | 返回指定的子字符串 | -| [`SUBSTRING()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring) | 返回指定的子字符串 | -| [`SUBSTRING_INDEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index) | 返回最终定界符左边或右边的子字符串 | -| [`MID()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_mid) | 返回从指定位置开始的子字符串 | -| [`LEFT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left) | 返回指定的最左字符 | -| [`RIGHT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_right) | 返回指定的最右字符 | -| [`INSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr) | 返回子字符串的第一个出现位置 | -| [`LOCATE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate) | 返回子字符串的第一个出现位置,与 `INSTR()` 的参数位置相反 | -| [`POSITION()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position) | 与 `LOCATE()` 功能相同 | -| [`REPEAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_repeat) | 返回重复指定次数的字符串 | -| [`CONCAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat) | 返回连接的字符串 | -| [`CONCAT_WS()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat-ws) | 返回由分隔符连接的字符串 | -| [`REVERSE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_reverse) | 返回和字符顺序相反的字符串 | -| [`SPACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_space) | 返回指定数目的空格组成的字符串 | -| [`FIELD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field) | 返回参数在后续参数中出现的第一个位置 | -| [`ELT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_elt) | 返回指定位置的字符串 | -| [`EXPORT_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_export-set)               | 返回一个字符串,其中值位中设置的每个位,可以得到一个 on 字符串,而每个未设置的位,可以得到一个 off 字符串       | -| [`MAKE_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_make-set)                   | 返回一组逗号分隔的字符串,由位集合中具有相应位的字符串组成                                                   | -| [`FIND_IN_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set) | 返回第一个参数在第二个参数中出现的位置 | -| [`FORMAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_format) | 返回指定小数位数格式的数字 | -| [`ORD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ord) | 返回参数中最左字符的字符代码 | -| [`QUOTE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_quote)                         | 引用一个字符串,返回一个在 SQL 语句中可用作正确转义的数据值的结果                                                                                           | - -## 字符串比较函数 - -| 函数名 | 功能描述 | -|:------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------| -| [`LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like) | 进行简单模式匹配 | -| [`NOT LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_not-like) | 否定简单模式匹配 | -| [`STRCMP()`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#function_strcmp) | 比较两个字符串 | +| [`BIT_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bit-length) | 返回字符串的位长度 | +| [`CHAR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char)    | 返回由整数的代码值所给出的字符组成的字符串 | +| [`CHAR_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char-length) | 返回字符串的字符长度 | +| [`CHARACTER_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_character-length) | 与 `CHAR_LENGTH()` 功能相同 | +| [`CONCAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat) | 返回连接的字符串 | +| [`CONCAT_WS()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat-ws) | 返回由分隔符连接的字符串 | +| [`ELT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_elt) | 返回指定位置的字符串 | +| [`EXPORT_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_export-set) | 返回一个字符串,其中值位中设置的每个位,可以得到一个 on 字符串,而每个未设置的位,可以得到一个 off 字符串 | +| [`FIELD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field) | 返回参数在后续参数中出现的第一个位置 | +| [`FIND_IN_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set) | 返回第一个参数在第二个参数中出现的位置 | +| [`FORMAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_format) | 返回指定小数位数格式的数字 | +| [`FROM_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_from-base64) | 解码 base-64 表示的字符串,并返回结果 | +| [`HEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_hex) | 返回一个十进制数或字符串值的 16 进制表示 | +| [`INSERT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_insert) | 在指定位置插入一个子字符串,最多不超过指定字符数 | +| [`INSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr) | 返回第一次出现的子字符串的索引 | +| [`LCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lcase) | 与 `LOWER()` 功能相同 | +| [`LEFT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left) | 返回最左侧指定长度的字符 | +| [`LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_length) | 返回字符串长度,单位为字节 | +| [`LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like) | 进行简单模式匹配 | +| [`LOCATE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate) | 返回第一次出现的子字符串的位置 | +| [`LOWER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lower) | 返回全小写的参数 | +| [`LPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad) | 返回字符串参数,左侧添加指定字符串 | +| [`LTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ltrim) | 去掉前缀空格 | +| [`MAKE_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_make-set) | 返回一组用逗号分隔的字符串,这些字符串的位数与给定的 bits 参数对应 | +| [`MID()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_mid) | 返回一个以指定位置开始的子字符串 | +| [`NOT LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_not-like) | 否定简单模式匹配 | +| [`NOT REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_not-regexp) | `REGEXP` 的否定形式 | +| [`OCT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_oct) | 返回一个数值的八进制表示,形式为字符串 | +| [`OCTET_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_octet-length) | 与 `LENGTH()` 功能相同 | +| [`ORD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ord) | 返回该参数最左侧字符的字符编码 | +| [`POSITION()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position) | 与 `LOCATE()` 功能相同 | +| [`QUOTE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_quote) | 使参数逃逸,为了在 SQL 语句中使用 | +| [`REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 使用正则表达式匹配模式 | +| [`REPEAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_repeat) | 以指定次数重复一个字符串 | +| [`REPLACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace) | 替换所有出现的指定字符串 | +| [`REVERSE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_reverse) | 反转字符串里的所有字符 | +| [`RIGHT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_right) | 返回指定数量的最右侧的字符 | +| [`RLIKE`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 与 `REGEXP` 功能相同 | +| [`RPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rpad) | 以指定次数添加字符串 | +| [`RTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rtrim) | 去掉后缀空格 | +| [`SPACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_space) | 返回指定数量的空格,形式为字符串 | +| [`STRCMP()`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#function_strcmp) | 比较两个字符串 | +| [`SUBSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substr) | 返回指定的子字符串 | +| [`SUBSTRING()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring) | 返回指定的子字符串 | +| [`SUBSTRING_INDEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index) | 从一个字符串中返回指定出现次数的定界符之前的子字符串 | +| [`TO_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_to-base64) | 返回转化为 base-64 表示的字符串参数 | +| [`TRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim) | 去掉前缀和后缀空格 | +| [`UCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ucase) | 与 `UPPER()` 功能相同 | +| [`UNHEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_unhex) | 返回一个数的十六进制表示,形式为字符串 | +| [`UPPER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_upper) | 参数转换为大写形式 | -## 正则表达式 +## 不支持的函数 -| 表达式名 | 功能描述 | -|:------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------| -| [`REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 使用正则表达式进行模式匹配 | -| [`RLIKE`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 与 `REGEXP` 功能相同 | -| [`NOT REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_not-regexp) | 否定 `REGEXP` | +* `LOAD_FILE()` +* `MATCH` +* `SOUNDEX()` +* `SOUNDS LIKE` +* `WEIGHT_STRING()` diff --git a/v3.0/reference/sql/functions-and-operators/bit-functions-and-operators.md b/v3.0/reference/sql/functions-and-operators/bit-functions-and-operators.md index 859077ff9e4d..e4519ff935d3 100644 --- a/v3.0/reference/sql/functions-and-operators/bit-functions-and-operators.md +++ b/v3.0/reference/sql/functions-and-operators/bit-functions-and-operators.md @@ -6,7 +6,7 @@ aliases: ['/docs-cn/sql/bit-functions-and-operators/'] # 位函数和操作符 -TiDB 中位函数和操作符的使用方法与 MySQL 基本一致,详情参见: [Bit Functions and Operators](https://dev.mysql.com/doc/refman/5.7/en/bit-functions.html)。 +TiDB 支持使用 MySQL 5.7 中提供的所有[位函数和操作符](https://dev.mysql.com/doc/refman/5.7/en/bit-functions.html)。 **位函数和操作符表** diff --git a/v3.0/reference/sql/functions-and-operators/cast-functions-and-operators.md b/v3.0/reference/sql/functions-and-operators/cast-functions-and-operators.md index fbd91971ef34..6705a605374e 100644 --- a/v3.0/reference/sql/functions-and-operators/cast-functions-and-operators.md +++ b/v3.0/reference/sql/functions-and-operators/cast-functions-and-operators.md @@ -6,7 +6,7 @@ aliases: ['/docs-cn/sql/cast-functions-and-operators/'] # Cast 函数和操作符 -Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 中该函数和操作符的使用方法与 MySQL基本一致,详情参见: [Cast Functions and Operators](https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html). +Cast 函数和操作符用于将某种数据类型的值转换为另一种数据类型。TiDB 支持使用 MySQL 5.7 中提供的所有 [Cast 函数和操作符](https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html)。 ## Cast 函数和操作符表 diff --git a/v3.0/reference/sql/functions-and-operators/control-flow-functions.md b/v3.0/reference/sql/functions-and-operators/control-flow-functions.md index bbe2d84a0384..46aa98621d39 100644 --- a/v3.0/reference/sql/functions-and-operators/control-flow-functions.md +++ b/v3.0/reference/sql/functions-and-operators/control-flow-functions.md @@ -6,6 +6,8 @@ aliases: ['/docs-cn/sql/control-flow-functions/'] # 控制流程函数 +TiDB 支持使用 MySQL 5.7 中提供的所有[控制流程函数](https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html)。 + | 函数名 | 功能描述 | |:--------------------------------------------------------------------------------------------------|:----------------------------------| | [`CASE`](https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#operator_case) | Case 操作符 | diff --git a/v3.0/reference/sql/functions-and-operators/date-and-time-functions.md b/v3.0/reference/sql/functions-and-operators/date-and-time-functions.md index 1be3b797799c..7dcb6633415b 100644 --- a/v3.0/reference/sql/functions-and-operators/date-and-time-functions.md +++ b/v3.0/reference/sql/functions-and-operators/date-and-time-functions.md @@ -6,7 +6,7 @@ aliases: ['/docs-cn/sql/date-and-time-functions/'] # 日期和时间函数 -TiDB 中日期和时间函数的使用方法与 MySQL 基本一致,详情参见: [Date and Time Functions](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html). +TiDB 支持使用 MySQL 5.7 中提供的所有[日期和时间函数](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html)。 ## 日期时间函数表 diff --git a/v3.0/reference/sql/functions-and-operators/encryption-and-compression-functions.md b/v3.0/reference/sql/functions-and-operators/encryption-and-compression-functions.md index 8122bc55697f..c0fc3c6cfbfb 100644 --- a/v3.0/reference/sql/functions-and-operators/encryption-and-compression-functions.md +++ b/v3.0/reference/sql/functions-and-operators/encryption-and-compression-functions.md @@ -6,6 +6,10 @@ aliases: ['/docs-cn/sql/encryption-and-compression-functions/'] # 加密和压缩函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[加密和压缩函数](https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:-----------|:----------------------------| | [`MD5()`](https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html#function_md5)                                                             | 计算字符串的 MD5 校验和       | @@ -27,3 +31,9 @@ aliases: ['/docs-cn/sql/encryption-and-compression-functions/'] | [`ASYMMETRIC_ENCRYPT()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-encrypt) | 使用公钥或私钥加密明文 | | [`ASYMMETRIC_SIGN()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-sign) | 从摘要创建签名 | | [`ASYMMETRIC_VERIFY()`](https://dev.mysql.com/doc/refman/5.7/en/enterprise-encryption-functions.html#function_asymmetric-verify) | 验证签名字符串是否匹配摘要字符串 | + +## 不支持的函数 + +* `DES_DECRYPT()`、`DES_ENCRYPT()`、`OLD_PASSWORD()` 和 `ENCRYPT()`:这些函数在 MySQL 5.7 中被废弃,并且已在 MySQL 8.0 中移除。 +* `VALIDATE_PASSWORD_STRENGTH()` 函数。 +* 只在 MySQL 企业版中支持的函数。见 [Issue #2632](https://github.com/pingcap/tidb/issues/2632)。 \ No newline at end of file diff --git a/v3.0/reference/sql/functions-and-operators/information-functions.md b/v3.0/reference/sql/functions-and-operators/information-functions.md index 7c0da7f40e87..d7944aae92ff 100644 --- a/v3.0/reference/sql/functions-and-operators/information-functions.md +++ b/v3.0/reference/sql/functions-and-operators/information-functions.md @@ -6,20 +6,28 @@ aliases: ['/docs-cn/sql/information-function/'] # 信息函数 -TiDB 中信息函数的使用方法与 MySQL 基本一致,详情参见:[Information Functions](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html)。 +TiDB 支持使用 MySQL 5.7 中提供的大部分[信息函数](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html)。 -## 信息函数表 +## 支持的函数 | 函数名 | 功能描述 | | ------ | ---------------------------------------- | +| [`BENCHMARK()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_benchmark) | 循环执行一个表达式 | | [`CONNECTION_ID()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_connection-id) | 返回当前连接的连接 ID (线程 ID) | | [`CURRENT_USER()`, `CURRENT_USER`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_current-user) | 返回当前用户的用户名和主机名 | | [`DATABASE()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_database) | 返回默认(当前)的数据库名 | | [`FOUND_ROWS()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_found-rows) | 该函数返回对于一个包含 LIMIT 的 SELECT 查询语句,在不包含 LIMIT 的情况下回返回的记录数 | | [`LAST_INSERT_ID()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_last-insert-id) | 返回最后一条 INSERT 语句中自增列的值 | +| [`ROW_COUNT()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_row-count) | 影响的行数 | | [`SCHEMA()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_schema) | 与 DATABASE() 同义 | | [`SESSION_USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_session-user) | 与 USER() 同义 | | [`SYSTEM_USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_system-user) | 与 USER() 同义 | | [`USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_user) | 返回客户端提供的用户名和主机名 | | [`VERSION()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_version) | 返回当前 MySQL 服务器的版本信息 | | `TIDB_VERSION()` | 返回当前 TiDB 服务器的版本信息 | + +## 不支持的函数 + +* `CHARSET()` +* `COERCIBILITY()` +* `COLLATION()` diff --git a/v3.0/reference/sql/functions-and-operators/miscellaneous-functions.md b/v3.0/reference/sql/functions-and-operators/miscellaneous-functions.md index 61842939cef7..f7ac0657d729 100644 --- a/v3.0/reference/sql/functions-and-operators/miscellaneous-functions.md +++ b/v3.0/reference/sql/functions-and-operators/miscellaneous-functions.md @@ -6,12 +6,14 @@ aliases: ['/docs-cn/sql/miscellaneous-functions/'] # 其他函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[其他函数](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:------|:-----------| | [`ANY_VALUE()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_any-value) | 在 `ONLY_FULL_GROUP_BY` 模式下,防止带有 `GROUP BY` 的语句报错 | -| [`SLEEP()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep) | 休眠指定秒数 | -| [`UUID()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid) | 返回通用唯一识别码 (UUID) | -| [`VALUES()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values) | 定义 `INSERT` 过程中要用到的值 | +| [`DEFAULT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_default) | 返回表的某一列的默认值 | | [`INET_ATON()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet-aton) | 将 IP 地址转换为数值 | | [`INET_NTOA()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet-ntoa) | 将数值转换为 IP 地址 | | [`INET6_ATON()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet6-aton) | 将 IPv6 地址转换为数值   | @@ -20,5 +22,14 @@ aliases: ['/docs-cn/sql/miscellaneous-functions/'] | [`IS_IPV4_COMPAT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv4-compat) | 判断参数是否为兼容 IPv4 的地址 | | [`IS_IPV4_MAPPED()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv4-mapped) | 判断参数是否为 IPv4 映射的地址 | | [`IS_IPV6()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_is-ipv6) | 判断参数是否为 IPv6 地址 | -| [`GET_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock)   | 获取命名锁,TiDB     出于兼容性支持这个函数,实际上不会做任何操作,这点和 MySQL 有区别 | -| [`RELEASE_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_release-lock) | 释放命名锁 | +| [`NAME_CONST()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_name-const) | 可以用于重命名列名 | +| [`SLEEP()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep) | 让语句暂停执行几秒时间 | +| [`UUID()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid) | 返回一个通用唯一识别码 (UUID) | +| [`VALUES()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values) | 定义 `INSERT` 语句使用的值 | + +## 不支持的函数 + +| [`GET_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock) | 获取命名锁,详见 [TiDB #10929](https://github.com/pingcap/tidb/issues/10929) | +| [`RELEASE_LOCK()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_release-lock) | 释放命名锁,详见 [TiDB #10929](https://github.com/pingcap/tidb/issues/10929) | +| [`UUID_SHORT()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid-short) | 基于特定假设提供唯一的 UUID,目前这些假设在 TiDB 中不存在,详见 [TiDB #4620](https://github.com/pingcap/tidb/issues/4620) | +| [`MASTER_WAIT_POS()`](https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_master-pos-wait) | 与 MySQL 同步相关 | \ No newline at end of file diff --git a/v3.0/reference/sql/functions-and-operators/numeric-functions-and-operators.md b/v3.0/reference/sql/functions-and-operators/numeric-functions-and-operators.md index a83944e46d8f..53ae8e8f778e 100644 --- a/v3.0/reference/sql/functions-and-operators/numeric-functions-and-operators.md +++ b/v3.0/reference/sql/functions-and-operators/numeric-functions-and-operators.md @@ -6,6 +6,8 @@ aliases: ['/docs-cn/sql/numeric-functions-and-operators/'] # 数值函数与操作符 +TiDB 支持使用 MySQL 5.7 中提供的所有[数值函数与操作符](https://dev.mysql.com/doc/refman/5.7/en/numeric-functions.html)。 + ## 算术操作符 | 操作符名 | 功能描述 | diff --git a/v3.0/reference/sql/functions-and-operators/string-functions.md b/v3.0/reference/sql/functions-and-operators/string-functions.md index 91a07233b138..07d94a383718 100644 --- a/v3.0/reference/sql/functions-and-operators/string-functions.md +++ b/v3.0/reference/sql/functions-and-operators/string-functions.md @@ -6,67 +6,69 @@ aliases: ['/docs-cn/sql/string-functions/'] # 字符串函数 +TiDB 支持使用 MySQL 5.7 中提供的大部分[字符串函数](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html)。 + +## 支持的函数 + | 函数名 | 功能描述 | |:----------|:-----------------------| | [`ASCII()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ascii) | 返回最左字符的数值 | -| [`CHAR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char)    | 返回由整数的代码值所给出的字符组成的字符串   | | [`BIN()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bin) | 返回一个数的二进制值的字符串表示 | -| [`HEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_hex) | 返回十进制值或字符串值的十六进制表示 | -| [`OCT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_oct) | 返回一个数的八进制值的字符串表示 | -| [`UNHEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_unhex) | 返回 HEX 表示的数字所代表的字符串 | -| [`TO_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_to-base64) | 返回转换为 BASE64 的字符串参数 | -| [`FROM_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_from-base64) | 解码为 BASE64 的字符串并返回结果 | -| [`LOWER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lower) | 返回小写字母的字符 | -| [`LCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lcase) | 与 `LOWER()` 功能相同 | -| [`UPPER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_upper) | 返回大写字母的字符 | -| [`UCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ucase) | 与 `UPPER()` 功能相同 | -| [`LPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad)                           | 返回左边由指定字符串填充的字符串参数                                                                         | -| [`RPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rpad)                           | 返回右边由指定字符串填充的字符串参数                                                                                               | -| [`TRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim) | 删除字符串的前缀和后缀 | -| [`LTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ltrim)                         | 删除前面的空格字符                                                                                                             | -| [`RTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rtrim) | 删除结尾的空格字符 | -| [`BIT_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bit-length)               | 返回字符串的位长度                                                                                                       | -| [`CHAR_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char-length)             | 返回字符串的字符长度                                                                                                   | -| [`CHARACTER_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_character-length) | 与 `CHAR_LENGTH()` 功能相同 | -| [`LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_length)                       | 返回字符串的字节长度                                                                                                   | -| [`OCTET_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_octet-length) | 与 `LENGTH()` 功能相同 | -| [`INSERT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_insert) | 在指定位置插入一个子字符串,直到指定的字符数 | -| [`REPLACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace) | 替换指定的字符串 | -| [`SUBSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substr) | 返回指定的子字符串 | -| [`SUBSTRING()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring) | 返回指定的子字符串 | -| [`SUBSTRING_INDEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index) | 返回最终定界符左边或右边的子字符串 | -| [`MID()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_mid) | 返回从指定位置开始的子字符串 | -| [`LEFT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left) | 返回指定的最左字符 | -| [`RIGHT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_right) | 返回指定的最右字符 | -| [`INSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr) | 返回子字符串的第一个出现位置 | -| [`LOCATE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate) | 返回子字符串的第一个出现位置,与 `INSTR()` 的参数位置相反 | -| [`POSITION()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position) | 与 `LOCATE()` 功能相同 | -| [`REPEAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_repeat) | 返回重复指定次数的字符串 | -| [`CONCAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat) | 返回连接的字符串 | -| [`CONCAT_WS()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat-ws) | 返回由分隔符连接的字符串 | -| [`REVERSE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_reverse) | 返回和字符顺序相反的字符串 | -| [`SPACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_space) | 返回指定数目的空格组成的字符串 | -| [`FIELD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field) | 返回参数在后续参数中出现的第一个位置 | -| [`ELT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_elt) | 返回指定位置的字符串 | -| [`EXPORT_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_export-set)               | 返回一个字符串,其中值位中设置的每个位,可以得到一个 on 字符串,而每个未设置的位,可以得到一个 off 字符串       | -| [`MAKE_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_make-set)                   | 返回一组逗号分隔的字符串,由位集合中具有相应位的字符串组成                                                   | -| [`FIND_IN_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set) | 返回第一个参数在第二个参数中出现的位置 | -| [`FORMAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_format) | 返回指定小数位数格式的数字 | -| [`ORD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ord) | 返回参数中最左字符的字符代码 | -| [`QUOTE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_quote)                         | 引用一个字符串,返回一个在 SQL 语句中可用作正确转义的数据值的结果                                                                                           | - -## 字符串比较函数 - -| 函数名 | 功能描述 | -|:------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------| -| [`LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like) | 进行简单模式匹配 | -| [`NOT LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_not-like) | 否定简单模式匹配 | -| [`STRCMP()`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#function_strcmp) | 比较两个字符串 | +| [`BIT_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_bit-length) | 返回字符串的位长度 | +| [`CHAR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char)    | 返回由整数的代码值所给出的字符组成的字符串 | +| [`CHAR_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_char-length) | 返回字符串的字符长度 | +| [`CHARACTER_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_character-length) | 与 `CHAR_LENGTH()` 功能相同 | +| [`CONCAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat) | 返回连接的字符串 | +| [`CONCAT_WS()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat-ws) | 返回由分隔符连接的字符串 | +| [`ELT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_elt) | 返回指定位置的字符串 | +| [`EXPORT_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_export-set) | 返回一个字符串,其中值位中设置的每个位,可以得到一个 on 字符串,而每个未设置的位,可以得到一个 off 字符串 | +| [`FIELD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field) | 返回参数在后续参数中出现的第一个位置 | +| [`FIND_IN_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set) | 返回第一个参数在第二个参数中出现的位置 | +| [`FORMAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_format) | 返回指定小数位数格式的数字 | +| [`FROM_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_from-base64) | 解码 base-64 表示的字符串,并返回结果 | +| [`HEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_hex) | 返回一个十进制数或字符串值的 16 进制表示 | +| [`INSERT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_insert) | 在指定位置插入一个子字符串,最多不超过指定字符数 | +| [`INSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr) | 返回第一次出现的子字符串的索引 | +| [`LCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lcase) | 与 `LOWER()` 功能相同 | +| [`LEFT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left) | 返回最左侧指定长度的字符 | +| [`LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_length) | 返回字符串长度,单位为字节 | +| [`LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like) | 进行简单模式匹配 | +| [`LOCATE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate) | 返回第一次出现的子字符串的位置 | +| [`LOWER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lower) | 返回全小写的参数 | +| [`LPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad) | 返回字符串参数,左侧添加指定字符串 | +| [`LTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ltrim) | 去掉前缀空格 | +| [`MAKE_SET()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_make-set) | 返回一组用逗号分隔的字符串,这些字符串的位数与给定的 bits 参数对应 | +| [`MID()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_mid) | 返回一个以指定位置开始的子字符串 | +| [`NOT LIKE`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_not-like) | 否定简单模式匹配 | +| [`NOT REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_not-regexp) | `REGEXP` 的否定形式 | +| [`OCT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_oct) | 返回一个数值的八进制表示,形式为字符串 | +| [`OCTET_LENGTH()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_octet-length) | 与 `LENGTH()` 功能相同 | +| [`ORD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ord) | 返回该参数最左侧字符的字符编码 | +| [`POSITION()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position) | 与 `LOCATE()` 功能相同 | +| [`QUOTE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_quote) | 使参数逃逸,为了在 SQL 语句中使用 | +| [`REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 使用正则表达式匹配模式 | +| [`REPEAT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_repeat) | 以指定次数重复一个字符串 | +| [`REPLACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace) | 替换所有出现的指定字符串 | +| [`REVERSE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_reverse) | 反转字符串里的所有字符 | +| [`RIGHT()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_right) | 返回指定数量的最右侧的字符 | +| [`RLIKE`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 与 `REGEXP` 功能相同 | +| [`RPAD()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rpad) | 以指定次数添加字符串 | +| [`RTRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_rtrim) | 去掉后缀空格 | +| [`SPACE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_space) | 返回指定数量的空格,形式为字符串 | +| [`STRCMP()`](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#function_strcmp) | 比较两个字符串 | +| [`SUBSTR()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substr) | 返回指定的子字符串 | +| [`SUBSTRING()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring) | 返回指定的子字符串 | +| [`SUBSTRING_INDEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index) | 从一个字符串中返回指定出现次数的定界符之前的子字符串 | +| [`TO_BASE64()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_to-base64) | 返回转化为 base-64 表示的字符串参数 | +| [`TRIM()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim) | 去掉前缀和后缀空格 | +| [`UCASE()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_ucase) | 与 `UPPER()` 功能相同 | +| [`UNHEX()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_unhex) | 返回一个数的十六进制表示,形式为字符串 | +| [`UPPER()`](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_upper) | 参数转换为大写形式 | -## 正则表达式 +## 不支持的函数 -| 表达式名 | 功能描述 | -|:------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------| -| [`REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 使用正则表达式进行模式匹配 | -| [`RLIKE`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) | 与 `REGEXP` 功能相同 | -| [`NOT REGEXP`](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_not-regexp) | 否定 `REGEXP` | +* `LOAD_FILE()` +* `MATCH` +* `SOUNDEX()` +* `SOUNDS LIKE` +* `WEIGHT_STRING()`