字符串函数

1.char_length(),length(),bit_length()

select char_length('abc'),length('abc'),bit_length('abc');
+--------------------+---------------+-------------------+
| char_length('abc') | length('abc') | bit_length('abc') |
+--------------------+---------------+-------------------+
|                  3 |             3 |                24 |
+--------------------+---------------+-------------------+

char_length()获取字符串的字符数

length()获取字符串的字节数,不包括字节

bit_length()获取字符串的bit位数

select char_length(''),length(''),bit_length('');
+--------------------+---------------+-------------------+
| char_length('')  | length('')  | bit_length('')  |
+--------------------+---------------+-------------------+
|                  1 |             3 |                24 |
+--------------------+---------------+-------------------+

字符串"我"是一个字符,但是汉字的我占三个有效字节,总共24bit位

2.替换字符串函数insert(s1,x,len,s2)

 将字符串s1从x位置开始,长度为len的字符串用s2来替换。len的长度和s2字符串的长度没有匹配关系

select insert('abcdef',2,3,'uio');
+----------------------------+
| insert('abcdef',2,3,'uio') |
+----------------------------+
| auioef                     |
+----------------------------+

 uio的长度只是刚好等于3

select insert('abcdef',2,3,'hjklo');
+------------------------------+
| insert('abcdef',2,3,'hjklo') |
+------------------------------+
| ahjkloef                     |
+------------------------------+

将s1的子字符串'bcd'用s2字符串'hjklo'替换

 select insert('abcdef',2,3,'h');
+--------------------------+
| insert('abcdef',2,3,'h') |
+--------------------------+
| ahef                     |
+--------------------------+

 3.填充字符串函数lpad(s1,len,s2)

将s2填充到s1的开始处,使s1长度达到len

select lpad('abc',5,'qw');
+--------------------+
| lpad('abc',5,'qw') |
+--------------------+
| qwabc              |
+--------------------+

  

 select lpad('abc',5,'qwerty');
+------------------------+
| lpad('abc',5,'qwerty') |
+------------------------+
| qwabc                  |
+------------------------+

 不会填充s2的全部,仅获取s2的'qw'部分

select lpad('abc',6,'qw');
+--------------------+
| lpad('abc',6,'qw') |
+--------------------+
| qwqabc             |
+--------------------+

仅填充一次s2无法达到长度6,则重复填充s2

首先将s1的长度用空白字符填充到6,然后逐个取s2的字符从左边开始填充空白符

select lpad('abcdef',2,'qw');
+-----------------------+
| lpad('abcdef',2,'qw') |
+-----------------------+
| ab                    |
+-----------------------+

 需要达到的长度实际比s1小,则s1被截取

 4.char(ascii)根据ascii码值返回字符

select char(97);
+----------+
| char(97) |
+----------+
| a        |
+----------+
原文地址:https://www.cnblogs.com/bibiafa/p/9279862.html