天天看點

MySQL 5.6常用字元函數

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;
           

繼續閱讀