MySQL 字符串函数

下面是MySql各种内置字符串函数:

char_length(s) 返回字符串的长度,单位是字符个数
length(s)  返回字符串的长度,单位是字节
concat(s1,s2,……) 返回连接参数构成的字符串
concat_ws(x,s1,s2,……) 和concat(s1,s2,……) 一样,不过要加上x
insert(s1,x,len,s2) 用s2代替s1的x位置开始的长度为len的字符串 (不是简单的插入啊)
upper(s), ucase(s)  -->大写
lower(s), lcase(s) -->小写
left(s,n) 返回字符串S开始的前n个字符
right(s,n)   返回字符串S开始的后n个字符 
ltrim(s) 删除开始的空格
rtrim(s) 删除结尾的空格
trim(s)  删除开始和结尾的空格
trim(s1 from s) 删除开始和结尾的s1
strcmp(s) 比较
repeat(s) 重复
replace(s,s1,s2) 代替
mid(s,n,len)  substring(s,n,len)  获取n开始长度是len子串
locate(s1,s)   position(s1 in s)  获取s1在s中的开始位置  (通过下面的例子可以看出mysql中函数说的字符位置是从1开始的)
reverse(s)  反序
field(s,s1,s2……)
find_in_set(s1,s2) 返回s2中与s1匹配的字符串的位置
make_set(x,s1,s2……) 按x的二进制数从s1,s2,s3……中选取字符串

以下是实践:
mysql> select char_length('love'),length('爱');
+---------------------+--------------+
| char_length('love') | length('爱')   |
+---------------------+--------------+
|                   4 |            2 |
+---------------------+--------------+

mysql> select concat('123','567') as part1, concat_ws('0','123','567') as part2;
+--------+---------+
| part1  | part2   |
+--------+---------+
| 123567 | 1230567 |
+--------+---------+

mysql> select insert('12345',1,4,'0');
+-------------------------+
| insert('12345',1,4,'0') |
+-------------------------+
| 05                      |
+-------------------------+

mysql> select upper('aBcD'),ucase('aBcD'),lower('aBcD'),lcase('aBcD');
+---------------+---------------+---------------+---------------+
| upper('aBcD') | ucase('aBcD') | lower('aBcD') | lcase('aBcD') |
+---------------+---------------+---------------+---------------+
| ABCD          | ABCD          | abcd          | abcd          |
+---------------+---------------+---------------+---------------+

mysql> select left('12345678',3),right('12345678',3);
+--------------------+---------------------+
| left('12345678',3) | right('12345678',3) |
+--------------------+---------------------+
| 123                | 678                 |
+--------------------+---------------------+

mysql> select concat('=',ltrim(' 0 12340 '),'='), concat('=',rtrim(' 0 12340 '),'=');
+------------------------------------+------------------------------------+
| concat('=',ltrim(' 0 12340 '),'=') | concat('=',rtrim(' 0 12340 '),'=') |
+------------------------------------+------------------------------------+
| =0 12340 =                         | = 0 12340=                         |
+------------------------------------+------------------------------------+

mysql> select concat('=',trim(' 0 12340 '),'='), concat('=', trim('0' from '012340'),'=');
+-----------------------------------+------------------------------------------+
| concat('=',trim(' 0 12340 '),'=') | concat('=', trim('0' from '012340'),'=') |
+-----------------------------------+------------------------------------------+
| =0 12340=                         | =1234=                                   |
+-----------------------------------+------------------------------------------+

mysql> select repeat('3',3),strcmp('ads','asd'),replace('I learn mysql','learn','love');
+---------------+---------------------+-----------------------------------------+
| repeat('3',3) | strcmp('ads','asd') | replace('I learn mysql','learn','love') |
+---------------+---------------------+-----------------------------------------+
| 333           |                  -1 | I love mysql                            |
+---------------+---------------------+-----------------------------------------+

mysql> select mid('csdn',2,2), substring('csdn',2,2);
+-----------------+-----------------------+
| mid('csdn',2,2) | substring('csdn',2,2) |
+-----------------+-----------------------+
| sd              | sd                    |
+-----------------+-----------------------+

mysql> select locate('sd','csdn'),position('sd' in 'csdn');
+---------------------+--------------------------+
| locate('sd','csdn') | position('sd' in 'csdn') |
+---------------------+--------------------------+
|                   2 |                        2 |
+---------------------+--------------------------+

mysql> select reverse('asdfg');
+------------------+
| reverse('asdfg') |
+------------------+
| gfdsa            |
+------------------+

mysql> select field('as','df','sdsa','as','sfsdf','as');
+-------------------------------------------+
| field('as','df','sdsa','as','sfsdf','as') |
+-------------------------------------------+
|                                         3 |
+-------------------------------------------+

  # 使用find_in_set
mysql> use mysql;
Database changed
mysql> create table student (name varchar(10));
Query OK, 0 rows affected (0.11 sec)

mysql> insert into student values('Elena'),('Demon'),('Stephen');
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from student where find_in_set('Demon',name);
+-------+
| name  |
+-------+
| Demon |
+-------+
1 row in set (0.05 sec)

mysql> drop table student
    -> ;
Query OK, 0 rows affected (0.08 sec)

mysql> select make_set(10,'11','22','33','44','55','66','77','88','99','1010') as anwser;
+--------+
| anwser |
+--------+
| 22,44  |
+--------+
# 注意: 10化成二进制1010,从低位到高位对应字符串集的s1,s2,s3,s4……  即0101-->'11','22','33','44'->22 44




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值