MYSQL 字符串函数(四)

2024年 4月 17日 147.9k 0

15、LPAD(s1,len,s2)

LPAD() 是 MySQL 中的一个字符串函数,用于在字符串的左侧填充指定的字符,直到达到指定的长度。它的语法是:

LPAD(s1, len, s2)

参数说明:

s1:要填充的原始字符串。

len:返回的字符串的长度。如果 s1 的长度大于 len,则 s1 会被截断到 len 的长度。

s2:用于填充的字符。

这个函数会返回一个新的字符串,其长度由 len 参数指定。如果 s1 的长度小于 len,那么 s2 指定的字符会被添加到 s1 的左侧,直到达到 len 指定的长度。如果 s1 的长度大于 len,那么 s1 会被截断到 len 的长度。

示例:

SELECT LPAD('abc', 5, '0');
-- 结果是 '00abc'
SELECT LPAD('abcdef', 5, '0');
-- 结果是 'cdef'
SELECT LPAD('abc', 10, '*');
-- 结果是 '*******abc'

在第一个示例中,原始字符串 'abc' 的长度是 3,而我们希望得到的字符串长度是 5。因此,我们在 'abc' 的左侧填充了 2 个 '0' 字符。

在第二个示例中,原始字符串 'abcdef' 的长度是 6,而我们希望得到的字符串长度是 5。因此,'abcdef' 被截断到长度为 5,结果是 'cdef'

在第三个示例中,原始字符串 'abc' 的长度是 3,而我们希望得到的字符串长度是 10。因此,我们在 'abc' 的左侧填充了 7 个 '*' 字符。

16、POSITION(s1 IN s)

在 MySQL 中,POSITION() 函数用于返回子字符串 s1 在字符串 s 中第一次出现的位置。如果 s1 不在 s 中,则返回 0

函数的语法是:

POSITION(s1 IN s)

其中:

s1 是要查找的子字符串。

s 是要在其中查找 s1 的字符串。

POSITION() 函数返回的是子字符串 s1s 中首次出现的位置,位置是从 1 开始计数的,而不是从 0 开始。如果 s1 不在 s 中,则返回 0

示例:

SELECT POSITION('bar'IN'foobar');
-- 结果是 4
SELECT POSITION('x'IN'foobar');
-- 结果是 0

在第一个示例中,子字符串 'bar''foobar' 中首次出现的位置是 4。

在第二个示例中,子字符串 'x' 不在 'foobar' 中,因此返回 0

需要注意的是,虽然 POSITION() 函数在功能上类似于 LOCATE() 函数,但它们的参数顺序是相反的。LOCATE(s1, s) 的功能与 POSITION(s1 IN s) 相同,只是参数顺序不同。选择使用哪一个函数主要取决于你的个人喜好或团队的编码规范。

17、LTRIM(s)

在 MySQL 中,LTRIM() 函数用于从字符串 s 的左侧移除空格或其他指定的字符。默认情况下,它移除字符串左侧的空格。如果你希望移除其他字符,可以传递第二个参数来指定这些字符。

函数的语法是:

LTRIM(s)

或者,如果你想移除特定的字符:

LTRIM(s FROM str)

其中:

s 是要从左侧移除的字符,如果不指定第二个参数,则默认为空格。

str 是要处理的原始字符串。

当使用默认行为时,LTRIM() 会移除字符串左侧的所有空格。如果指定了第二个参数,它将移除该参数指定的字符,直到遇到第一个不是该字符的字符为止。

示例:

SELECT LTRIM(' Hello World');
-- 结果是 'Hello World'
SELECT LTRIM('xxxHello World', 'x');
-- 结果是 'Hello World'

在第一个示例中,LTRIM() 移除了字符串 ' Hello World' 左侧的空格。

在第二个示例中,LTRIM() 移除了字符串 'xxxHello World' 左侧的 'x' 字符,直到遇到第一个不是 'x' 的字符 'H'

这个函数在处理从外部源接收的、可能包含前导空格或其他不需要的字符的字符串时非常有用。

18、REPEAT(s,n)

在 MySQL 中,REPEAT() 函数用于重复一个字符串 s 指定次数 n,并返回结果字符串。

函数的语法是:

REPEAT(s, n)

其中:

s 是要重复的字符串。

n 是字符串 s 应该被重复的次数。

如果 n 是一个非正整数(即 0 或负数),REPEAT() 函数将返回一个空字符串。

示例:

SELECT REPEAT('a', 3);
-- 结果是 'aaa'
SELECT REPEAT('Hello', 2);
-- 结果是 'HelloHello'
SELECT REPEAT('abc', 0);
-- 结果是 ''(空字符串)
SELECT REPEAT('abc', -5);
-- 结果是 ''(空字符串)

在第一个示例中,字符串 'a' 被重复了 3 次,得到 'aaa'

在第二个示例中,字符串 'Hello' 被重复了 2 次,得到 'HelloHello'

在第三和第四个示例中,由于 n 的值是 0 或负数,所以返回了一个空字符串。

REPEAT() 函数在处理需要生成固定长度的重复字符串的场景时非常有用,比如在生成测试数据或构建特定格式的字符串时。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论