mysql 中文字符 函数_MySQL基础之字符函数-Go语言中文社区

本文主要介绍几个MySQL常见的字符函数。

1、length()函数

length函数用于获取值的字节个数。str参数可以是一个字符串、整数、浮点数、布尔值、函数、null等。

注:如果参数值是null,则结果也是null。

length(str);

实例1:

mysql> select length('mysql') as mysql,

length(12) as num,

LENGTH(true) as tureR,

LENGTH(false) as falseR,

length(NOW()) as fun,

length(null) as 'null';

+-------+-----+-------+--------+------+------+

| mysql | num | tureR | falseR |fun|null|

+-------+-----+-------+--------+------+------+

|     5    |    2 |    1    |     1   |   19  | NULL |

+-------+-----+-------+--------+------+------+

实例1的结果中 LENGTH(true) 和 LENGTH(false) 结果都是1,是因为布尔值ture返回1,false返回0。

实例2:

mysql> select LENGTH('mysql') as mysql,

LENGTH('数据库') as'数据库',

LENGTH('mysql数据库') as'mysql数据库';

+-------+--------+-------------+

| mysql |数据库| mysql数据库 |

+-------+--------+-------------+

|     5    |       6    |     11     |

+-------+--------+-------------+

实例2中,LENGTH('mysql')的结果是5,而 LENGTH('数据库') 的结果是6,这个结果与当前客户端的字符集有关。

查看字符集

mysql> show VARIABLES like'%char%';

+--------------------------+-----------------------------------+

| Variable_name              |Value|

+--------------------------+-----------------------------------+

|character_set_client    | utf8 |

| character_set_connection |utf8|

|character_set_database    | latin1 |

| character_set_filesystem     |binary|

|character_set_results    | utf8 |

| character_set_server     |latin1|

|character_set_system    | utf8 |

| character_sets_dir      |D:softwaremysqlsharecharsets|

+--------------------------+-----------------------------------+

由上结果可以看到,character_set_client 的值是latin1,即当前使用的客户端的字符集是latin1,一个英文字符占1个字节,一个中文字符占2个字节。

如果函数的参数用到一个表的字段,则结果与表使用的字符集有关,如utf8一个中文字符是三个字节,gbk是两个字节。

2、concat()函数

concat函数参数用于连接参数,产生新的字符串。

CONCAT(str1,str2,...);

函数的参数可以最少需要一个,可以有多个,其类型可以是一个字符串、整数、浮点数、布尔值、函数等。

实例

mysql>select CONCAT('mysql',1,3.14,LENGTH('mysql'),'_',true)  as out_put;

+---------------+

| out_put      |

+---------------+

| mysql13.145_1 |

+---------------+

1 row in set(0.00sec)

mysql>select CONCAT('mysql',1,3.14,LENGTH('mysql'),true,null) as out_put;

+---------+

| out_put |

+---------+

| NULL    |

+---------+

同样布尔值true返回1,如果有一个参数是null,则最终返回结果就是null。

3、upper()和lower()函数

upper函数将参数值全部转为大写字母,lower函数将参数值全部转为小写字母。

UPPER(str)LOWER(str)

UPPER和LOWER均为一个参数,同样,参数值为布尔值时,true返回1,false返回0,值为null时,结果是NULL。

实例:

mysql>select upper('mysql') as upper,

lower('MYSQL')  lower;

+-------+-------+

| upper | lower |

+-------+-------+

| MYSQL | mysql |

+-------+-------+

4、substr()和substring()函数

substr和substring功能一样,用于对参数值进行截取。

根据参数列表不同,substr有四个重载的方法。str可以是任意有效值,但只有是数值,并且在str参数的长度之内可以成功截取,若str是null,则结果是null,其他返回空。str参数的长度是指字符的个数。

SUBSTR(str,pos)

SUBSTR(str,pos,len)

SUBSTR(str FROM pos)

SUBSTR(str FROM pos FOR len)

SUBSTR(str,pos)实例:

mysql>select SUBSTR('mysql',2) as out_put;

+---------+| out_put |

+---------+

| ysql    |

+---------+

1 row in set(0.00sec)

SUBSTR(str,pos):截取从指定索引字符后面所有字符,索引从1开始。

SUBSTR(str,pos,len)实例:

mysql>select SUBSTR('mysql',2,2) as out_put;

+---------+

| out_put |

+---------+

| ys      |

+---------+

SUBSTR(str,pos,len):截取从指定索引处指定长度字符。

SUBSTR(str FROM pos) 和 SUBSTR(str FROM pos FOR len)实例:

mysql>select SUBSTR('mysql',2) as out_put1,

SUBSTR('mysql' FROM 2) as out_put2;

+----------+----------+

| out_put1 | out_put2 |

+----------+----------+

| ysql    | ysql    |

+----------+----------+

1 row in set(0.00sec)

mysql>selectSUBSTR('mysql',2,2)asout_put1,

SUBSTR('mysql'FROM2for2)asout_put2;

+----------+----------+

| out_put1 | out_put2 |

+----------+----------+

| ys      | ys      |

+----------+----------+

从实例的结果可以看到,SUBSTR(str FROM pos)其实和 SUBSTR(str,pos) 功能一样,而 SUBSTR(str FROM pos FOR len) 和 SUBSTR(str,pos,len) 功能一样。

5、instr()函数

instr函数返回子串第一次出现的索引(从1开始),没有则返回0。

INSTR(str,substr)

str参数和substr参数可以是任意有效值。

实例:

mysql>select INSTR('Mysql_mysql','m') as out_put;

+---------+

| out_put |

+---------+

|    1    |

+---------+

实例结果中看出,函数匹配时对大小写不敏感。

6、trim()函数

trim函数去参数值前后空格。

TRIM([remstr FROM]str)

实例:

mysql>select TRIM('  mysql  ') as out_put;

+---------+

| out_put |

+---------+

| mysql  |

+---------+

也可以去除前后指定字符:

mysql>select TRIM('a'from'aaMySQLaa') as out_put;

+---------+

| out_put |

+---------+

| MySQL  |

+---------+

7、lpad函数

lpad函数作用:用指定的字符实现左填充至指定长度。

LPAD(str,len,padstr)

实例:

mysql>select LPAD('mysql',10,'*') as out_put;

+------------+

| out_put    |

+------------+

| *****mysql |

+------------+

上例中,在mysql左填充了5个*,返回值的字符个数是10。将函数第二个参数10改为2,看看结果:

mysql>select LPAD('mysql',2,'*') as out_put;

+---------+

out_put |

+---------+

| my      |

+---------+

2比mysql字符个数要少,所以不会填充,并且因为结果只需要返回2个字符,会把在索引2之后的字符截断。

8、replace()函数

REPLACE(str,from_str,to_str)

replace函数作用:在str中找出所有from_str,用to_str替换。

实例:

mysql>

select REPLACE('oracle数据库','oracle','mysql') as out_put;

+-------------+

| out_put    |

-------------+

| mysql数据库 |

+-------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值