1、字元長度計算
-- 字元串位長度(一位元組8位)
select BIT_LENGTH('Hello') a1,BIT_LENGTH('張三') a2;
-- 字元串個數
select CHAR_LENGTH('Hello') a1,CHAR_LENGTH('張三') a2;
-- 字元串 位元組數
select LENGTH('Hello') a1,LENGTH('張三') a2;
select OCTET_LENGTH('Hello') a1,OCTET_LENGTH('張三') a2;
2、base64加解密函數
-- 貌似中文會有問題
select TO_BASE64('張三') a1,TO_BASE64('Hello') a2,TO_BASE64('http://www.baidu.com') a3;
select FROM_BASE64('5byg5LiJ') a1,FROM_BASE64('SGVsbG8=') a2,FROM_BASE64('aHR0cDovL3d3dy5iYWlkdS5jb20=') a3;
3、字元串大小寫轉換
-- 大小寫轉換
select LCASE('Hello') a0,LOWER('Hello') a1,UCASE('Hello') a2,UPPER('Hello') a3;
select LCASE('張三') a0,LOWER('張三') a1,UCASE('張三') a2,UPPER('張三') a3;
4、截取左右字元串
-- 截取左邊字元串
select LEFT('Hello',3) a1,LEFT('Hello',10) a2;
-- 截取右邊字元串
select RIGHT('Hello',3) a1,RIGHT('Hello',10) a2;
5、截取字元串,長度不夠補齊
-- 截取字元串,長度不夠左邊補齊
select LPAD('Hello',10,'#') a1,LPAD('Hello',3,'#') a2;
-- 截取字元串,長度不夠右邊補齊
select RPAD('Hello',10,'#') a1,RPAD('Hello',3,'#') a2;
6、左右空格截取
select LTRIM(' Hello ') a1,LPAD(' Hello ',3,'#') a2;
select RTRIM(' Hello ') a1,LPAD(' Hello ',3,'#') a2;
7、字元與數字轉換
-- 對中文支援不好
select ASCII('A') a1,ASCII('a') a2,ASCII('張') a3;
select CHAR(65) a1,CHAR(77,121,83,81,'76') a2,CHAR(229) a3;
8、字元串轉置
select REVERSE('Hello') a1, REVERSE('張三') a2;
9、字元串替換
REPLACE(
str
,
from_str
,
to_str
)
select REPLACE('Hello張三','H','李四') a1,REPLACE('Hello','l','AA') a2;
10、字元串重複顯示
REPEAT(
str
,
count
)
select REPEAT('張三',2) a1,REPEAT('ABC',2) a2;
11、求字元串的字串
SUBSTRING(
str
,
pos
)
,
SUBSTRING(
str
FROM
pos
)
,
SUBSTRING(
str
,
pos
,
len
)
,
SUBSTRING(
str
FROM
pos
FOR
len
)
SUBSTR(
str
,
pos
)
,
SUBSTR(
str
FROM
pos
)
,
SUBSTR(
str
,
pos
,
len
)
,
SUBSTR(
str
FROM
pos
FOR
len
)
select SUBSTRING('Hello World',3) a1,SUBSTRING('Hello',3,20) a2;
select SUBSTR('Hello World',3) a1,SUBSTR('Hello',3,20) a2;
12、字元串比較
STRCMP(
expr1
,
expr2
)
SELECT STRCMP('1','2') a1,STRCMP('1','1') a2,STRCMP('2','1') a3;
SELECT STRCMP('A','ABC') a1,STRCMP('1','A') a2,STRCMP('B','ABC') a3;
13、求子串在字元串中的位置
INSTR(
str
,
substr
)
LOCATE(
substr
,
str
)
,
LOCATE(
substr
,
str
,
pos
)
POSITION(
substr in
str
)
select INSTR('Hello','A') a1,INSTR('Hello','ll') a2;
select LOCATE('A','Hello') a1,LOCATE('ll','Hello') a2,LOCATE('a','abcabc',2) a3;
select POSITION('A' in 'Hello') a1,POSITION('ll' in 'Hello') a2;