MYSQL字符串函数详解和实战(字符串函数大全,内含示例)

MySQL提供了许多字符串函数,用于处理和操作字符串数据。以下是一些常用的MYSQL字符串函数。

建议收藏以备后续用到查阅参考

目录

一、CONCAT 拼接字符串

二、CONCAT_WS 拼接字符串

三、SUBSTR 取子字符串

四、SUBSTRING 取子字符串

五、SUBSTRING_INDEX 取子字符串

六、REPLACE 替换子字符串

七、UPPER 字母转大写

八、LENGTH 取以字节为单位的长度

九、TRIM 删除字符串头部和尾部空格

十、RTRIM 删除尾部空格

十一、LTRIM 删除前导空格

十二、REVERSE 反转后字符串

十三、ASCII 转为ASCII 值

十四、BIN 转为二进制

十五、BIT_LENGTH 取位为单位的长度

十六、CHAR 转为字符

十七、CHAR_LENGTH 转为字符后的长度

十八、CHARACTER_LENGTH 转为字符后的长度

十九、ELT 指定参数返回

二十、EXPORT_SET 指定分隔符拼接字符串

二十一、FIELD 取值在列表中的索引

二十二、FIND_IN_SET 分隔串中找字符串

二十三、FORMAT 数字格式化为字符串

二十四、FROM_BASE64 解码BASE64编码的字符串

二十五、HEX 取参数的十六进制值的字符串表示

二十六、INSERT 字符串中插入一个新的字符串

二十七、INSTR 查找子串在目标串出现的第一个位置

二十八、LCASE 转为小写

二十九、LOWER 转为小写

三十、LEFT 取左子串字符串

三十一、RIGHT 取右子串字符串

三十二、LOCATE 查找第一个子串的位置

三十三、LPAD 左侧填充指定的字符串使其达到指定的长度

三十四、RPAD 右侧填充指定的字符串使其达到指定的长度

三十五、MAKE_SET 按参数1的二进制位反转返回对应位置参数以逗号分隔集合

三十六、MID 取指定位置指定长度的子字符串

三十七、OCT 数字转八进制

三十八、OCTET_LENGTH 取以字节为单位的长度

三十九、ORD 取第一个字符的ASCII码

四十、POSITION 查找子串在目标串出现的第一个位置

四十一、QUOTE 用单引号包围字符串

四十二、REPEAT 字符串重复指定的次数

四十三、SOUNDEX 取发音的 soundex 字符串

四十四、SPACE 取指定数量空格字符串

四十五、STRCMP 比较两个字符串

四十六、TO_BASE64 以base-64编码字符串

四十七、UCASE 字符串转为大写

四十八、UNHEX 十六进制数值的字符串转换为字节


一、CONCAT 拼接字符串

MySQL CONCAT() 函数用来按顺序拼接指定的 2 个或多个字符串,并返回拼接后的字符串。如果您需要使用分隔符连接多个字符串,请使用 CONCAT_WS() 函数。如果拼接的参数中一个为 NULL, 则返回 NULL

语法:

CONCAT(string1, string2, ..., stringN)

参数说明:

  • string1, string2, ..., stringN 必需的,至少应指定一个字符串;拼接中若有一个为 NULL, 则返回 NULL

返回值:

  • 返回拼接后的字符串。
  • 只有一个参数,返回参数本身。
  • 若有一个参数为NULL,返回NULL。
  • 无参数时报错:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT'

示例:

SELECT CONCAT('Hello', 'World'); // HelloWorld
SELECT CONCAT('Hello', NULL);    // NULl

二、CONCAT_WS 拼接字符串

MySQL CONCAT_WS() 函数用来通过指定的分隔符按顺序拼接指定的 2 个或多个字符串,并返回拼接后的字符串。

忽略String1,String2... 中的NULL值。

语法:

CONCAT_WS(separator, string1, string2, ..., stringN)

参数说明:

  • separator:分隔符,必须的。您可以使用单个字符,也可以使用字符串。

  • string1, string2, ..., stringN:必需的,至少应指定一个字符串;如果拼接的参数为 NULL, 则会被忽略;当不指定字符串时,MySQL 将会报错: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONCAT_WS'

返回值:

  • 分隔符连接后的多个字符串。
  • 返回 NULL情况:separator 为 NULL。

示例:

SELECT 
    CONCAT_WS('-', 'Hello', 'World'),       // Hello-World
    CONCAT_WS('-', 'Hello', NULL, 'World'), // Hello-World
    SELECT CONCAT_WS('-', 'Hello');         // Hello

三、SUBSTR 取子字符串

MYSQL SUBSTR()函数是 SUBSTRING() 函数的别名。

四、SUBSTRING 取子字符串

MySQL SUBSTRING() 函数从一个字符串中返回一个从指定位置开始的指定长度的子字符串。 SUBSTR() 等同于 SUBSTRING() 函数。

语法:

有4种形式:
SUBSTRING(str, pos)
SUBSTRING(str FROM pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos FOR len)

参数说明:

  • str:必需的,从中提取子字符串的原字符串。
  • pos:必需的,开始提取的位置。它可以是正数或者负数。如果是正数,则从字符串的开头为起始位置确定开始提取的位置提取子字符串。如果是负数,则从字符串的结尾为起始位置确定开始提取的位置提取子字符串。
  • len:可选的。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。

返回值:

  • 当 pos 为 0 或者超过原字符串的长度时, 返回空串 ''
  • 当 pos 为负数时,从字符串尾部向前计数。
  • 当 pos + len 超过原字符串的长度时,从pos位置提取到原字符串的结尾。
  • 当参数为 NULL 时, 返回 NULL

示例:

SELECT
    SUBSTRING('Hello', 1, 2),	       // He 
    SUBSTRING('Hello', 1),	           // Hello 
    SUBSTRING('Hello', -2, 2),         // lo 
    SUBSTRING('Hello' FROM 2 FOR 2)    // el 

五、SUBSTRING_INDEX 取子字符串

MySQL SUBSTRING_INDEX() 函数返回一个字符串中指定分隔符出现在指定次数之前的子字符串。

语法:

SUBSTRING_INDEX(str, delim, count)

参数说明:

  • str:必需的。原字符串。

  • delim:必需的。在原字符串中搜索的分隔符。

  • count:必需的。分隔符出现的次数。如果 count 为负数,则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。

返回值:

  • 从左往右数:count为正数,返回一个字符串中指定分隔符出现在指定次数之前的子字符串。
  • 从右往左数:count为负数,返回一个字符串中指定分隔符出现在指定次数之前的子字符串。
  • 返回空情况:count为0。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    SUBSTRING_INDEX('www.baidu.com', '.', 2), // www.baidu
    SUBSTRING_INDEX('www.baidu.com', '.', -2), // baidu.com
    SUBSTRING_INDEX('www.baidu.com', '.', 0) // 

六、REPLACE 替换子字符串

MySQL REPLACE() 函数将字符串中出现的所有子字符串替换为新的子字符串。 REPLACE() 函数是基于字符的替换,并且替换字符串时是区分大小写的。

语法:

REPLACE(str, from_str, to_str)

参数说明:

  • str:必需的,原字符串。
  • from_str:必需的,被替换的子字符串。
  • to_str:必需的,用来替换的新子字符串。

返回值:

  • 返回 str 中的所有 from_str 被 to_str 替换后的字符串。
  • 当任意一个参数为 NULL 时, REPLACE() 函数将返回 NULL

示例:

SELECT
    REPLACE('Hello World', 'World', 'Alice'), // Hello Alice
    REPLACE('Hello World', 'l', 'L'),		  // HeLLo WorLd
    REPLACE('hello World', 'h', 'HH')		  // HHello World

七、UPPER 字母转大写

MySQL UPPER() 函数将指定字符串转为大写并返回。 UCASE() 函数是 UPPER() 函数的别名。

如果想将字符串转换为小写,请使用 LCASE() 或者 LOWER() 函数。

语法:

UPPER(str)

参数说明:

  • str:必需的。 被处理的字符串。

返回值:

  • 定字符串的大写形式。
  • 当参数 str 为 NULL 时, UPPER() 函数将返回 NULL

示例:

SELECT UPPER(name)
FROM film
LIMIT 3;

+-------+
|FILM0  |
+-------+
|FILM1  |
+-------+
|FILM2  |
+-------+

八、LENGTH 取以字节为单位的长度

MySQL LENGTH() 函数返回指定字符串的以字节为单位的长度。如果想返回字符的数量,请使用 CHAR_LENGTH() 函数或者 CHARACTER_LENGTH() 函数。

LENGTH() 函数与 OCTET_LENGTH() 函数相同。

语法:

LENGTH(string)

参数说明:

  • string:必需的。需要计算长度的字符串。参数可以是其他的类型,比如数字或者日期等,LENGTH() 函数会首先将其转为字符串再计算长度。

返回值:

  • 返回指定字符串的以字节为单位的长度,即字节的数量。
  • 当参数为 NULL 时, 返回 NULL

示例:

SELECT
    LENGTH('Hello'),     // 5
    LENGTH(''),          // 0
    LENGTH(20),          // 2
    LENGTH(-20),         // 3
    LENGTH(+20),         // 2
    LENGTH(NOW()),       // 19
    LENGTH(CURDATE()),   // 10
    LENGTH('你好'),       // 6
    LENGTH(NULL)         // NULL

九、TRIM 删除字符串头部和尾部空格

MySQL TRIM() 函数从指定字符串的开头和结尾删除由指定字符组成的最长字符串。如果只想删除字符串的前导空格,请使用 LTRIM() 函数;如果只想删除字符串的尾随空格,请使用 RTRIM() 函数。

语法:

TRIM(str)
TRIM(remove_str FROM str)
TRIM({BOTH | LEADING | TRAILING} remove_str FROM str)

参数说明:

  • str:必需的。需要处理的字符串。
  • remove_str:可选的。需要删除的前缀和后缀字符串。如果不指定这个 remove_str,则默认值为空格。
  • BOTH:代表同时删除前导和尾随的字符。
  • LEADING:代表只删除前导字符。
  • TRAILING:代表只删除尾随的字符。
  • 如果不指定 {BOTH | LEADING | TRAILING},则默认值为 BOTH

返回值:

  • 从指定字符串的开头、结尾或者两端删除由指定字符组成的最长字符串。
  • 当参数为 NULL 时, TRIM() 函数将返回 NULL

示例:

SELECT
    TRIM('   Hello   '),                     // Hello
    TRIM(BOTH FROM '   Hello   '),           // Hello
    TRIM(LEADING FROM '   Hello   '),        // Hello   尾部还有空格
    TRIM(TRAILING FROM '   Hello   '),       //   Hello头部还有空格
    TRIM('_' FROM '___Hello___'),	         // Hello
    TRIM(BOTH '_' FROM '___Hello___'),       // Hello
    TRIM(LEADING '_' FROM '___Hello___'),    // Hello___
    TRIM(TRAILING '_' FROM '___Hello___'),   // ___Hello
    TRIM('_#' FROM '_#_#_Hello_#_#'),        // _Hello
    TRIM(BOTH '_#' FROM '_#_#_Hello_#_#'),   // _Hello
    TRIM(LEADING '_#' FROM '_#_#_Hello_#_#'),// _Hello_#_#
    TRIM(TRAILING '_#' FROM '_#_#_Hello_#_#')// _#_#_Hello

十、RTRIM 删除尾部空格

MySQL RTRIM() 函数删除指定字符串的尾部空格,并返回没有尾部空格的字符串。如果删除字符串的尾随空格,请使用 RTRIM() 函数;如果想同时删除字符串的前导和尾随空格,请使用 TRIM() 函数。

语法:

RTRIM(str)

参数说明:

  • str:必需的。需要删除尾部空格的字符串。

返回值:

  • 删除了尾部空格的字符串。
  • 返回 NULL情况:参数为 NULL 。

示例:

SELECT
    RTRIM('   Hello '), //    Hello已删除尾部空格
    RTRIM(NULL);        // NULL

十一、LTRIM 删除前导空格

MySQL LTRIM() 函数删除指定字符串的前导空格,并返回没有前导空格的字符串。如果删除字符串的尾随空格,请使用 RTRIM() 函数;如果想同时删除字符串的前导和尾随空格,请使用 TRIM() 函数。

语法:

LTRIM(str)

参数说明:

  • str:必需的。需要删除前导空格的字符串。

返回值:

  • 删除了前导空格的字符串。
  • 返回NULL情况:参数为 NULL。

示例:

SELECT
    LTRIM('   Hello '),    // Hello 尾部空格未删除
    LTRIM(NULL)            // NULL

十二、REVERSE 反转后字符串

MySQL REVERSE() 函数返回反转后的字符串。 REVERSE() 函数基于字符操作而不是基于字节。

语法:

REVERSE(str)

参数说明:

  • str:必需的。需要反转的字符串。

返回值:

  • 返回反转后的字符串。
  • 当参数为 NULL 时, REVERSE() 函数将返回 NULL

示例:

SELECT
    REVERSE('ABC'),    // CBA
    REVERSE('abc'),    // cba
    REVERSE('123'),    // 231
    REVERSE(NULL)      // NULL

十三、ASCII 转为ASCII 值

MySQL ASCII() 函数将指定的字符转为对应的 ASCII 值。ASCII() 只返回由指定的字符串的第一个字符的 ASCII 值。

语法:

ASCII(character)

参数说明:

  • character:必需的。 要返回 ASCII 值的字符。 如果多余一个字符,它将只返回第一个字符的 ASCII 值。

返回值:

  • 给定的字符串的第一个字符的 ASCII 值。
  • 返回 NULL情况:character 为 NULL

示例:

SELECT ASCII('A');    // 65

十四、BIN 转为二进制

MySQL BIN() 函数返回给定数字的二进制值的字符串表示。

语法:

BIN(number)

参数说明:

  • number:必需的。需要以二进制表示的数字。

返回值:

  • 表示给定数字的二进制值。
  • 返回 NULL情况:number 为 NULL。

示例:

SELECT
    BIN(2),        // 10
    BIN(3.6),      // 11
    BIN('3A'),     // 11
    BIN(NULL)      // NULL

十五、BIT_LENGTH 取位为单位的长度

MySQL BIT_LENGTH() 函数以位为单位返回给定字符串的长度。

如果想以字节为单位返回字符串的长度,请使用 LENGTH() 函数。

如果想返回字符串中的字符数量,请使用 CHAR_LENGTH() 或者 CHARACTER_LENGTH() 函数。

语法:

BIT_LENGTH(string)

参数说明:

  • string:必需的。 需要计算位长度的字符串。

返回值:

  • 给定字符串的位长度。
  • 返回 NULL情况:string 为 NULL。
  • 若参数不为字符串,会尝试转为字符串

示例:

SELECT
    BIT_LENGTH('a'),        // 8
    BIT_LENGTH('string'),   // 48
    BIT_LENGTH(1),          // 8
    BIT_LENGTH(01),         // 8
    BIT_LENGTH('01'),       // 16
    BIT_LENGTH('你好'),      // 48
    BIT_LENGTH(NULL)        // NULL

十六、CHAR 转为字符

MySQL CHAR() 函数将每个参数对应的整数转为对应的字符,并将这些字符组成一个字符串返回。

忽略值为NULL的参数。

语法:

CHAR(num1, [num2, ...])

参数说明:

  • num1, [num2, ...]:必需的。一些整数,或者能转为整数的值。

返回值:

  • 一个字符串,其中的字符由每个整数参数对应的字符组成。
  • 参数NULL直接被忽略,只有一个参数且为NULL时返回空。

示例:

SELECT
    CHAR(65, 66, 67),            // ABC
    CHAR(65, '66', '67'),        // ABC
    CHAR(65.4, '66.5', '67.6'),  // ABC
    CHAR(65, 66, NULL, 67),      // ABC
    CHAR(NULL)                   // 

十七、CHAR_LENGTH 转为字符后的长度

在 MySQL 中, CHAR_LENGTH() 返回给定字符串的长度。 CHAR_LENGTH() 返回的是字符串中字符的数量,与字符编码无关。此函数是 CHARACTER_LENGTH() 函数的别名。

语法:

CHARACTER_LENGTH(string)

参数说明:

  • string:必需的。 需要计算长度的字符串。

返回值:

  • 给定字符串的长度(字符的个数)。
  • 返回 NULL情况:string 为 NULL

示例:

SELECT CHAR_LENGTH('cxian');    // 5

十八、CHARACTER_LENGTH 转为字符后的长度

在 MySQL 中, CHARACTER_LENGTH() 返回给定字符串的长度。 CHARACTER_LENGTH() 返回的是字符串中字符的数量,与字符编码无关。此函数是 CHAR_LENGTH() 函数的别名。

用法同CHAR_LENGTH(number)函数。

十九、ELT 指定参数返回

MySQL ELT() 函数从第二个参数开始查找由第一个参数指定位置的参数并作为字符串返回。

语法:

ELT(pos, str1, str2, ...)

参数说明:

  • pos:必需的。一个用于指定位置的数字。

  • str1, str2, ...:必需的。字符串参数列表。

返回值:

  • 由 pos 指定位置的参数。
  • pos大于0:返回第pos+1的参数。
  • 返回 NULL情况:pos 小于 1 或者超过参数的数量。

示例:

SELECT
    ELT(1, 'Aa', 'Bb', 'Cc'),    // Aa
    ELT(3, 'Aa', 'Bb', 'Cc'),    // Cc
    ELT(-1, 'Aa', 'Bb', 'Cc'),   // NULL
    ELT(0, 'Aa', 'Bb', 'Cc'),    // NULL
    ELT(4, 'Aa', 'Bb', 'Cc')     // NULL

二十、EXPORT_SET 指定分隔符拼接字符串

语法:

EXPORT_SET(bits, on, off, separator, length)

参数说明:

  • bits:必需的。一个数字。将 bits 转为二进制并反转后的各个位的值决定 on 还是 off 出现在该位置。

  • on:必需的。当位值为 1 时使用的字符串。

  • off:必需的。当位值为 0 时使用的字符串。

  • separator:可选的。分隔符或者分隔字符串,默认值为 ,

  • length:可选的。集合的元素的个数,默认值为 64

返回值:

  • 根据 bits 对应的二进制并反转后的值挑选对应的字符串,并返回一个逗号分隔的字符串集合。

示例:

SELECT
    EXPORT_SET(5, 'Aa', 'Bb', '#', 4),    // Aa#Bb#Aa#Bb
        // bits = 5, 5 的二进制位 101, 总长度为 4,左边补 0 变为 0101。然后反转变为 1010。
        // 按 1010 中的每位的值使用 on 或者 off:
            // 第一位为 1,则使用 Aa。
            // 第二位为 0,则使用 Bb。
            // 第三位为 1,则使用 Aa。
            // 第四位为 0,则使用 Bb。
        // 最后将所有的字符串使用分隔符 # 组合起来,即:Aa#Bb#Aa#Bb。
    EXPORT_SET(5, 'Y', 'N', ',', 4),      // Y,N,Y,N
    EXPORT_SET(5, '1', '0', ',', 10),     // 1,0,1,0,0,0,0,0,0,0
    EXPORT_SET(0, 'Y', 'N', ',', 4)       // N,N,N,N

二十一、FIELD 取值在列表中的索引

MySQL FIELD() 函数返回一个指定的值在给定的列表中的索引。

语法:

FIELD(value, v1, v2, ..., vN)

参数说明:

  • value:必须的。要在列表中查找的值。
  • v1, v2, ..., vN:必须的。被搜索的列表中的各个元素。

返回值:

  • 指定的值对应的位置索引(索引从1开始)。
  • 返回0情况:
    • 找不到指定的值。
    • 查找的值为 NULL。

示例:

SELECT 
    FIELD('A', 'A', 'B', 'C'),    // 1
    FIELD('1', 'A', 'B', 'C'),    // 0
    FIELD(NULL, NULL, 'B', 'C')  // 0

二十二、FIND_IN_SET 分隔串中找字符串

MySQL FIND_IN_SET() 函数返回字符串在一个逗号分隔的字符串列表中的索引。 FIND_IN_SET() 函数与 FIELD() 函数类似,不同的是 FIELD() 中的列表是由多个参数组成的,并且参数的类型也不一定是字符串。

语法:

FIND_IN_SET(string, string_list)

参数说明:

  • string:必须的。这是要搜索的字符串。

  • string_list:必须的。这是一个使用逗号分隔的字符串列表。

返回值:

  • 找到则返回对应的位置索引。
  • 返回 0情况:
    • 找不到。
    • 找到空串。
  • 返回 NULL情况:
    • ​​​​​​​任何一个参数为NULL。

示例:

SELECT 
  FIND_IN_SET('A', 'A,B,C'),    // 1
  FIND_IN_SET('1', 'A,B,C'),    // 0
  FIND_IN_SET(NULL, 'A,B,C'),   // NULL
  FIND_IN_SET('D', NULL)        // NULL

二十三、FORMAT 数字格式化为字符串

MySQL FORMAT() 函数将数字四舍五入到指定的小数位数,并按照  #,###,###.##之类的格式进行格式化,然后将结果作为字符串返回。

语法:

FORMAT(number, decimal_places)

参数说明:​​​​​​​

  • number:必需的。 需要格式化的数字。
  • decimal_places:必需的。 要保留的小数位数。

返回值:

  • ​​​​​​​指定小数位数的类似于 #,###,###.## 格式的字符串。有一定规则:
    • 若以数字开头,则将开头的数字部分转为数字。
    • 若不能转为数字,则按照 0 处理。
  • 返回 NULL情况:number为null。
  • 无小数点情况:decimal_places为0。

示例:

SELECT
    FORMAT(111111, 2),    // 111,111.00
    FORMAT(111111.111, 2),// 111,111.11
    FORMAT(111111.111, 0),// 111,111
    FORMAT('111111', 2),  // 111,111.00
    FORMAT('11111A', 2),  // 11,111.00
    FORMAT('A11111', 2),  // 0.00
    FORMAT(NULL, 2)       // NULL

二十四、FROM_BASE64 解码BASE64编码的字符串

MySQL FROM_BASE64() 函数解码 base-64 编码的数据并将结果作为二进制字符串返回。

FROM_BASE64() 函数可以解码 TO_BASE64() 函数的结果。

不同于现有的 base-64 方案, MySQL TO_BASE64() 和 FROM_BASE64() 函数有些特殊的规则:

  • 字母值 62 的编码是 '+'.
  • 字母值 63 的编码是 '/'.
  • 编码输出由 4 个可打印字符组成。输入数据的每 3 个字节使用 4 个字符进行编码。如果最后一组长度不够 4,则用 '=' 字符填充。
  • 在编码输出的每 76 个字符之后添加一个换行符,以将长输出分成多行。
  • 解码识别并忽略换行符、回车符、制表符和空格。

语法:

FROM_BASE64(str)

参数说明:

  • str:必需的。 用于 base-64 解码的字符串。

返回值:

  • 将 base-64 编码的数据解码结果作为二进制字符串返回。
  • 返回 NULL情况:str 为 NULL。
  • 由于 FROM_BASE64() 函数返回的是二进制字符串,因此在 mysql 客户端显示的结果可能是十六进制内容。请在登陆时使用 --binary-as-hex=false 以禁用将二进制内容显示为十六进制。

示例一登陆时不使用--binary-as-hex

示例二登陆时使用--binary-as-hex=false

注:使用Navicat Premium连接数据库显示效果如示例二。

二十五、HEX 取参数的十六进制值的字符串表示

MySQL HEX() 函数返回给定数字或字符串的十六进制值的字符串表示。

语法:

HEX(number)
HEX(string)

​​​​​​​参数说明:

  • number/string:必需的。需要以十六进制表示的数字或字符串。

返回值:

  • ​​​​​​​参数的十六进制值。
  • 返回 NULL情况:number/string 为 NULL。

示例:

SELECT
    HEX(255),    // FF
    HEX('b'),    // 62
    HEX('abc'),  // 616263
    HEX(NULL)    // NULL

二十六、INSERT 字符串中插入一个新的字符串

MySQL INSERT() 函数在一个字符串中插入一个新的字符串,该新的字符串会替换源字符串中指定位置开始的指定长度的子字符串。

语法:

INSERT(str, pos, len, newstr)

参数说明:

  • str:必需的。 需要处理的字符串。
  • pos:必需的。 开始插入新字符串 newstr 的位置。pos 的值从 1 开始。
  • len:必需的。 要被替换的字符的数量。
  • newstr:必需的。 要插入的新字符串。

返回值:

  • ​​​​​​​被处理后的原字符串 str,其中 str 中从 pos 开始长度为 len 的子字符串被 newstr 替换掉。
  • 不替换情况:
    • len为0。
    • pos不在字符串长度范围内。
  • 若len > str.length - pos,则从位置 pos 替换str.length - pos的字符串
  • 返回 NULL情况:
    • ​​​​​​​​​​​​​​任何参数是 NULL。

示例:

SELECT
    INSERT(NULL, 6, 1, ' '),              // NULL
    INSERT('Hello_World', 6, 1, ' '),     // Hello World
    INSERT('Hello_World', 6, 20, ' '),    // Hello

二十七、INSTR 查找子串在目标串出现的第一个位置

MySQL INSTR() 函数返回一个子字符串在一个字符串中第一次出现的位置的数字索引。 INSTR() 函数是不区分大小写的。 INSTR() 函数与具有两个参数的 LOCATE() 函数的和 POSITION() 功能相同。

语法:

INSTR(str, substr)

参数说明:

  • str:必需的。 被搜索的字符串。
  • substr:必需的。 在 str 中搜索的子串。

返回值:

  • 子字符串 substr 在字符串 str 中的位置的数字索引。​​​​​​​(数字索引从 1 开始)​​​​​​​
  • 返回 0情况:找不到。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    INSTR('Hello World', 'He'),    // 1
    INSTR('Hello World', 'he'),    // 1
    INSTR('Hello World', 'do'),    // 0
    INSTR('Hello World', NULL)     // NULL

二十八、LCASE 转为小写

MySQL LCASE() 函数将指定字符串转为小写并返回。 LCASE() 函数是 LOWER() 函数的别名。
如果想将字符串转换为大写,请使用 UCASE() 或者 UPPER() 函数。

语法:

LCASE(str)

参数说明:

  • str:必需的。 被处理的字符串。

返回值:

  • ​​​​​​​指定字符串的小写形式。
  • 返回 NULL情况:str为NULL。

示例:

SELECT 
    LCASE('Hello'),    // hello
    LCASE(NULL)        // NULL

二十九、LOWER 转为小写

MySQL LOWER() 函数将指定字符串转为小写并返回。 LCASE() 函数是 LOWER() 函数的别名。
如果想将字符串转换为大写,请使用 UCASE() 或者 UPPER() 函数。
​​​​​​​详见:二十七、LCASE 转为小写

三十、LEFT 取左子串字符串

MySQL LEFT() 函数从指定字符串的左侧返回指定数量的字符组成的字符串。如果想从字符串的右侧提取字符,请使用 RIGHT() 函数。

语法:

LEFT(string, length)

参数说明:

  • string:必需的。需要从中提取字符的字符串。
  • length:必需的。需要从字符串中提取字符的数量。

返回值:

  • ​​​​​​​指定数量的字符组成的左子字符串。
  • 返回原字符串情况:length大于string的长度。
  • 返回空串情况:length为小于等于0。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    LEFT('Hello', 2),    // He
    LEFT('Hello', 6),    // Hello
    LEFT('Hello', 0),    // 
    LEFT('Hello', -1),   //
    LEFT('Hello', NULL)  // NULL

三十一、RIGHT 取右子串字符串

MySQL RIGHT() 函数从指定字符串的右侧返回指定数量的字符组成的字符串。如果想从字符串的左侧提取字符,请使用 LEFT() 函数。

操作参考三十、LEFT 取左子串字符串相似。不同是LEFT 是左边,而RIGHT是右边。(这里不再举例)

三十二、LOCATE 查找第一个子串的位置

MySQL LOCATE() 函数返回一个字符串在另一个字符串中第一次出现的位置的数字索引。 LOCATE() 函数是不区分大小写的。 LOCATE() 函数与具有两个参数的 INSTR() 函数的和 POSITION() 功能相同。

语法:

LOCATE(substr, str)
LOCATE(substr, str, startPos)

参数说明:

  • substr:必需的。 在 str 中搜索的子串。
  • str:必需的。 被搜索的字符串。
  • startPos:可选的。 在 str 中开始搜索的位置,从 1 开始。

返回值:

  • 子字符串 substr 在字符串 str 中的位置的数字索引。(数字索引从 1 开始)​​​​​​​
  • 返回 0情况:
    • 找不到。
    • startPos 为 0。
  • 返回 NULL情况:任意一个参数为 NULL

示例:

SELECT
    LOCATE('He', 'Hello World'),    // 1
    LOCATE('ho', 'Hello World'),    // 1
    LOCATE('go', 'Hello World'),    // 0
    LOCATE(NULL, 'Hello World'),    // NULL

​​​​​​​三十三、LPAD 左侧填充指定的字符串使其达到指定的长度

MySQL LPAD() 函数在字符串的左侧填充指定的字符串,使其达到指定的长度。如果想在字符串的右侧填充字符串,请使用 RPAD() 函数。

语法:

LPAD(str, len, padstr)

参数说明:

  • str:必需的。需要被填充的字符串。
  • len:必需的。填充字符串需要达到的长度。
  • padstr:可选的。被用来填充到原字符串左侧的字符串。

返回值:

  • ​​​​​​​填充后的字符串。
  • len 小于原字符串 str 的长度, str 将被截断到 len 的长度。
  • 返回 NULL情况:
    • ​​​​​​​​​​​​​​len 为负数。
    • 任意一个参数为 NULL。

示例:

SELECT
    LPAD('oh', 5, 'o'),        // ooooooh
    LPAD('oh', 1, '1'),        // o
    LPAD('oh', -1, 'o'),       // NULL
    LPAD('World', 15, 'Hello') // HelloHelloWorld

三十四、RPAD 右侧填充指定的字符串使其达到指定的长度

MySQL RPAD() 函数在一个字符串的右侧填充指定的字符串,使其达到指定的长度。如果想在字符串的左侧填充字符串,请使用 LPAD() 函数。

操作与LPAD相似。不同点是LPAD是多左侧,RPAD是右侧。详见:三十三、LPAD 左侧填充指定的字符串使其达到指定的长度。

三十五、MAKE_SET 按参数1的二进制位反转返回对应位置参数以逗号分隔集合

MySQL MAKE_SET() 函数返回一个逗号分隔的字符串集合,该函数通过第一个参数对应的二进制决定是否其他字符串参数是否添加到结果集合中。

语法:

MAKE_SET(bits, str1, str2, ...)

参数说明:

  • bits:必需的。一个数字。将 bits 转为二进制并反转后的各个位决定 str1, str2, ... 是否出现在结果中。

  • str1, str2, ...:必需的。备选字符串。str1, str2, ... 分别由 bits 二进制并反转后的值中的第 1, 2, ... 决定是否出现在结果中。

返回值:

  • ​​​​​​​根据 bits 对应的二进制并反转后的值挑选对应的字符串,并返回一个逗号分隔的字符串集合。
  • NULL参数直接被忽略。
  • 若bits为0,返回空。

示例:

SELECT
    MAKE_SET(0, 'a', 'b', 'c', 'd'), //
    MAKE_SET(1, 'a', 'b', 'c', 'd'), // a
    MAKE_SET(2, 'a', 'b', 'c', 'd'), // a,b
    MAKE_SET(3, 'a', 'b', 'c', 'd'), // b
    MAKE_SET(4, 'a', 'b', 'c', 'd'). // c
  • bits为0:返回空
  • bits为1:二进制为0001,反转后为1000,对应a,返回a。
  • bits为2:二进制为0010,反转后为0100,对应b,返回b。
  • bits为3:二进制为0011,反转后为1100,对应ab,返回a,b。
  • bits为4:二进制为0100,反转后为0010,对应c,返回c。

三十六、MID 取指定位置指定长度的子字符串

MySQL MID() 函数返回一个字符串中从指定位置开始的指定长度的子字符串。

MID(str, pos, len) 等同于 SUBSTRING(str, pos, len) 和 SUBSTR(str, pos, len) 函数。

语法:

MID(str, pos, len)

详见:四、SUBSTRING 取子字符串

三十七、OCT 数字转八进制

MySQL OCT() 函数返回给定数字的八进制值的字符串表示。

语法:

OCT(number)

参数说明:

  • number:必需的。需要以八进制表示的数字。

返回值:

  • ​​​​​​​给定数字的八进制值。
  • 返回 NULL情况:参数 number 为 NULL。
  • number 为非数字:首先尝试将其转为数字后再返回数字的八进制表示,无法转为数字则返回0。

示例:

SELECT
    OCT(12),     // 14
    OCT(3.5),    // 3
    OCT('A'),    // 0
    OCT('3A'),   // 3
    OCT(NULL)    // NULL

三十八、OCTET_LENGTH 取以字节为单位的长度

MySQL OCTET_LENGTH() 函数返回指定字符串的以字节为单位的长度。如果想返回字符的数量,请使用 CHAR_LENGTH() 函数或者 CHARACTER_LENGTH() 函数。

与 LENGTH() 函数相同。

详见:八、LENGTH 取以字节为单位的长度

三十九、ORD 取第一个字符的ASCII码

MySQL ORD() 函数返回字符串参数中的第一个字符的字符代码。如果第一个字符是单字节字符, ORD() 函数返回字符的 ASCII 值;如果第一个字符是多字节字符,返回公式 第一个字节代码 + 第二个字节的代码 * 256 + 第三个字节的代码 * 256 * 256 的结果。

语法:

ORD(string)

参数说明:

  • string:必需的。一个字符串。

返回值:

  • ​​​​​​​首先获取参数 string 最左侧的字符,然后根据字符是否多字节字符按如下规则返回:
    • 若第一个字符是单字节字符, 返回字符的 ASCII 值。
    • 若第一个字符是多字节字符,根据返回公式 第一个字节代码 + 第二个字节的代码 * 256 + 第三个字节的代码 * 256 * 256 的结果。

示例:

SELECT
    ORD('abc'),    // 97
    ORD('a'),      // 97
    ORD('A'),      // 65
    ORD('北京')     // 15043735

四十、POSITION 查找子串在目标串出现的第一个位置

MySQL POSITION() 函数返回一个字符串在另一个字符串中第一次出现的位置的数字索引。 POSITION() 函数是不区分大小写的。 POSITION() 函数与具有两个参数的 INSTR() 函数和 LOCATE() 函数 功能相同。语法上有些不同。

语法:

POSITION(substr IN str)

参数说明:

  • substr:必需的。 在 str 中搜索的子串。

  • str:必需的。 被搜索的字符串。

返回值:

  • ​​​​​​​子字符串 substr 在字符串 str 中的位置的数字索引。(数字索引从 1 开始)
  • 返回0情况:找不到。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    POSITION('Wo' IN 'Hello World'),    // 7
    POSITION('wo' IN 'Hello World'),    // 7
    POSITION('1' IN 'Hello World'),     // 0
    POSITION('l' IN NULL)               // NULL

四十一、QUOTE 用单引号包围字符串

MySQL QUOTE() 函数返回一个用单引号包围的字符串。 QUOTE() 函数会对 \' 符号转义。

语法:

QUOTE(string)

参数说明:

  • string:必需的。一个字符串。

返回值:

  • 用单引号包围的字符串。​​​​​​​
  • 返回NULL情况:参数为 NULL。

示例:

SELECT
    QUOTE('Hello''word!'),	// 'Hello\'word!'
    QUOTE('Hello world!'),	// 'Hello world!'
    QUOTE(NULL)							// NULL

四十二、REPEAT 字符串重复指定的次数

MySQL REPEAT() 函数将指定的字符串重复指定的次数并返回。

语法:

REPEAT(str, count)

参数说明:

  • str:必需的。 需要重复的字符串。

  • count:必需的。 需要重复的次数。

返回值:

  • ​​​​​​​字符串重复指定的次数并返回。
  • 返回空字符串 ''情况:count为0。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    REPEAT('Hello', 3),    // HelloHelloHello
    REPEAT('MySQL', 0),    // 
    REPEAT('MySQL', -1),   // 
    REPEAT('MySQL', NULL)  // NULL

四十三、SOUNDEX 取发音的 soundex 字符串

MySQL SOUNDEX() 函数返回表示字符串发音的 soundex 字符串。 SOUNDEX() 函数用来比较两个单词的发音是否相同。如果两个单词发音相同,则他们的 soundex 字符串是相同的。

SOUNDEX(string) 函数只处理参数 string 中的字母,其他非字母字符将被忽略。

语法:

SOUNDEX(string)

参数说明:

  • string:必需的。一个字符串。

返回值:

  • ​​​​​​​发音的 soundex 字符串。
    • 标准的 soundex 字符串的长度为四个字符,但 SOUNDEX() 函数返回的字符串长度可能超过 4。如果您想获取标准的 soundex 字符串,您可以对 SOUNDEX() 函数的结果使用 SUBSTRING() 函数进行截取。

示例:

SELECT
    SOUNDEX('Hole'),    // H400
    SOUNDEX('Whole'),	// W400
    SOUNDEX('Our'),		// O600
    SOUNDEX('Our123'),  // O600
	SOUNDEX('123Our123')// O600

四十四、SPACE 取指定数量空格字符串

MySQL SPACE() 函数返回一个字符串,它由指定数量的空格符组成。

语法:

SPACE(count)

参数说明:

  • count:必需的。组成字符串的空格符号的数量。

返回值:

  • 由指定数量的空格组成的字符串。​​​​​​​
  • 返回''情况:count 小于 1 。
  • 返回 NULL情况:参数为 NULL

示例:

SELECT
    LENGTH(SPACE(2)),    // 2
    LENGTH(SPACE(-1)),   // 0
    SPACE(NULL)          // NULL

四十五、STRCMP 比较两个字符串

MySQL STRCMP() 函数比较两个字符串并返回比较结果。STRCMP() 函数基于字符串采用的字符排列规则(collation)比较两个字符串。

语法:

STRCMP(str1, str2)

参数说明:

  • str1:必需的。参与比较的第 1 个字符串。

  • str2:必需的。参与比较的第 2 个字符串。

返回值:

  • ​​​​​​​两个字符串比较后的结果。
    • str1 等于 str1, STRCMP() 函数将返回 0
    • str1 小于 str1, STRCMP() 函数将返回 -1
    • str1 大于 str1, STRCMP() 函数将返回 1
    • 返回 NULL情况:任意个参数为 NULL。

示例:

SELECT
    STRCMP('hello', 'hello'),    // 0
    STRCMP('hello1', 'hello'),   // 1
    STRCMP('hello', 'hello1'),   // -1
    STRCMP('hello', 'world'),    // -1
    STRCMP(NULL, NULL)           // NULL
  • 修改排序规则比较如下:
SET @s1 = _utf8mb4 'hello' COLLATE utf8mb4_general_ci;
SET @s2 = _utf8mb4 'Hello' COLLATE utf8mb4_0900_ai_ci;
SET @s3 = _utf8mb4 'hello' COLLATE utf8mb4_0900_as_cs;
SET @s4 = _utf8mb4 'Hello' COLLATE utf8mb4_0900_as_cs;
SELECT 
    STRCMP(@s1, @s2),// 排序规则不同无法比较直接报错
    STRCMP(@s3, @s4) // -1

四十六、TO_BASE64 以base-64编码字符串

MySQL TO_BASE64() 函数将给定字符串以 base-64 形式编码,并返回编码后的字符串表示。
FROM_BASE64() 函数可以解码 TO_BASE64() 函数的结果。
不同于现有的 base-64 方案, MySQL TO_BASE64() 和 FROM_BASE64() 函数有些特殊的规则:

  • 字母值 62 的编码是 '+'。
  • 字母值 63 的编码是 '/'。
  • 编码输出由 4 个可打印字符组成。输入数据的每 3 个字节使用 4 个字符进行编码。如果最后一组长度不够 4,则用 '=' 字符填充。
  • 在编码输出的每 76 个字符之后添加一个换行符,以将长输出分成多行。
  • 解码识别并忽略换行符、回车符、制表符和空格。

语法:

TO_BASE64(str)

参数说明:

  • str:必需的。 用于 base-64 编码的字符串。

返回值:

  • ​​​​​​​以 base-64 形式编码后的字符串。
  • 返回 NULL情况:参数为NULL。

示例:

SELECT
    TO_BASE64('Hello World'),                // SGVsbG8gV29ybGQ=
    FROM_BASE64(TO_BASE64('Hello World')),   // Hello World
    TO_BASE64(NULL)                          // NULL

四十七、UCASE 字符串转为大写

MySQL UCASE() 函数将指定字符串转为大写并返回。UCASE() 函数是 UPPER() 函数的别名。
如果想将字符串转换为小写,请使用 LCASE() 或者 LOWER() 函数。

详见:七、UPPER 字母转大写。

四十八、UNHEX 十六进制数值的字符串转换为字节

MySQL UNHEX() 函数将代表十六进制数值的字符串转换为字节,并返回对应的二进制字符串。
UNHEX() 函数的处理过程为从十六进制数值的字符串参数中每两位转换为字节,并将所有的字节组合起来作为二进制字符串返回。
UNHEX() 函数是 HEX() 函数的逆向操作。

语法:

UNHEX(string)

参数说明:

  • string:必需的。十六进制数值字符串。字符串中只允许出现十六进制允许的符号: 0...9A...Fa...f

返回值:

  • ​​​​​​​二进制字符串。
  • 返回 NULL情况:
    • ​​​​​​​string 不是合法的十六进制数值。
    • number 为 NULL。
  • 由于 UNHEX() 函数返回的是二进制字符串,因此在 mysql 客户端显示的结果可能是十六进制内容。请在登陆时使用 --binary-as-hex=false 以禁用将二进制内容显示为十六进制。

示例:

SELECT
    HEX('Hello'),        // 48656C6C6F
    UNHEX(HEX('Hello')), // Hello
    UNHEX('Invalid'),    // NULL
    UNHEX(NULL)          // NULL
  • 使用 --binary-as-hex示例详见:二十五、HEX 取参数的十六进制值的字符串表示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 程序开发流程 / 基本开发工具 / Vim / GCC工具链 / Make 工具 / Makefile 模板

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程&#xf…

文生图模型测评之HPS v2

文章目录 1. 简介2. HPD v22.1 相关数据集介绍2.2 HPD v2 的构建2.2.1 prompt collection2.2.2 image collection2.2.3 preference annotation3. Human Preference Score v23.1 构建模型3.2 实验结果4. 结论及局限性论文链接:Human Preference Score v2: A Solid Benchmark fo…

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…

Technology Strategy Patterns 学习笔记8- Communicating the Strategy-Decks(ppt模板)

1 Ghost Deck/Blank Deck 1.1 It’s a special way of making an initial deck that has a certain purpose 1.2 you’re making sure you have figured out what all the important shots are before incurring the major expense of shooting them 1.3 需要从技术、战略、产…

每天一点python——day66

#每天一点Python——66 #字符串的分隔 #如图&#xff1a; #方法①split()从左开始分隔&#xff0c;默认空格为分割字符&#xff0c;返回值是一个列表 shello world jisuanji#首先创建一个字符串 list1s.split() print(list1)#输出结果是&#xff1a;[hello, world, jisuanji]注…

GoF之代理模式

2023.11.12 代理模式是GoF23种设计模式之一&#xff0c;其作用是&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个客户不想或者不能直接引用一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…

不同性别人群的股骨颈骨密度随年龄的变化趋势

增龄是发生骨质疏松的危险因素。因此&#xff0c;中老年人需要积极防范骨质疏松&#xff0c;以免发生骨折等不良事件。 为了探究不同性别人群的股骨颈骨密度随年龄的变化趋势&#xff0c;首先创建一个df&#xff0c;变量有id&#xff08;编号&#xff09;、age&#xff08;年龄…

Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用

1.课程目标及知识点的应用场景 Git分支和标签的命名规范 分支 dev/test/pre/pro(即master) dev:开发环境--windows (自己的电脑) test:测试环境--windows/linux (公司专门的测试电脑 pre:灰度环境(非常大的公司非常重要的项目) pro:正式环境 灰度环境与正式环境的服务器配置…

开发者测试2023省赛--Square测试用例

测试结果 官方提交结果 EclEmma PITest 被测文件 [1/7] Square.java /*** This class implements the Square block cipher.** <P>* <b>References</b>** <P>* The Square algorithm was developed by <a href="mailto:Daemen.J@banksys.co…

Linux:安装MySQL5.7

1. 下载 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.html#downloads 2. 解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下 mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql3. 创建mysql用户组和用户并修改权限 g…

安装完 Ubuntu 22.04 LTS 后需要做的11件事情

如果你已经安装了 Ubuntu 22.04 LTS&#xff0c;接下来如何优化呢? 在本指南中&#xff0c;我们概述了一些基本步骤&#xff0c;当你熟悉 Ubuntu 22.04 LTS (Jammy Jellyfish) 时&#xff0c;你可以采取这些步骤。 (1) 更新本地存储库并升级系统 刷新本地软件包索引。因此&a…

【ArcGIS Pro二次开发】(75):ArcGIS Pro SDK二次开发中的常见问题及解决方法

ArcGIS Pro SDK二次开发路程也近一年时间了&#xff0c;这里总结一下平时遇到的一些问题和解决方法。有些问题没能解决&#xff0c;也记录下来&#xff0c;提醒自己不要忘记。 一、在VS2022中进行调试弹出错误 正常在VS2022中&#xff0c;如果要调试程序的话&#xff0c;直接按…

【C++】stack,queue和deque

stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供一组特定 的成…

ARM Linux 基础学习 / Linux Shell,必要命令全记录

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料&#xff08;如 百问网的《嵌入式Linux应用开发完全手册》&#xff0c;在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO&#xff1a;开发板资料》或《2.2 全系列Linux教程&#xf…

基于YOLOv8的输电线路异物识别算法应用

基于 YOLOv8 的输电线路异物识别算法应用 输电线路作为电力系统的重要一环&#xff0c;保证其安全稳定运行是十分必要的。由于长期暴露于室外&#xff0c;线路所面临的不安全因素繁多&#xff0c;异物入侵便是其中之一。异物可能会引起线路短路甚至诱发火灾&#xff0c;因此要加…

AIGC专栏8——EasyPhoto 视频领域拓展-让AIGC肖像动起来

AIGC专栏8——EasyPhoto 视频领域初拓展-让AIGC肖像动起来 学习前言源码下载地址技术原理储备Video Inference 功能说明 & 效果展示1、Text2Video功能说明a、实现原理简介b、文到视频UI介绍c、结果展示 2、Image2Video功能说明a、实现原理简介i、单图模式ii、首尾图模式 b、…

Technology Strategy Patterns 学习笔记9 - bringing it all together

1 Patterns Map 2 Creating the Strategy 2.1 Ansoff Growth Matrix 和owth-share Matrix 区别参见https://fourweekmba.com/bcg-matrix-vs-ansoff-matrix/ 3 Communicating

金和OA jc6 任意文件上传漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件&#xff08;简称金和OA&#xff09;&#xff0c;本着简单、适用、高效的原则&#xff0c;贴合企事业单位的实际需求&#xff0c;实行通用化、标准化、智能化、人性化的产品设计&#xff0c;充分体现企事业单位规范管理、提高办公效率…

华为ensp:ospf末梢stub完全末梢totally Stub

现在宣告都宣告完了&#xff0c;现在要给area1做完全末梢 末梢区域 进入r2系统视图模式 ospf 1area 1 stub quit进入r1系统视图 ospf 1 area 1 stub quit 现在去r1上查看 末梢成功 完全末梢 进入r2系统视图 ospf 1 area 1stub no-summary 现在就成为完全末梢了&…

AI 绘画 | Stable Diffusion精确控制ControlNet扩展插件

ControlNet ControlNet是一个用于控制AI图像生成的插件&#xff0c;通过使用Conditional Generative Adversarial Networks&#xff08;条件生成对抗网络&#xff09;的技术来生成图像。它允许用户对生成的图像进行更精细的控制&#xff0c;从而在许多应用场景中非常有用&#…