mysql字符串操作相关函数用法总结

功能用法简单例子一览表

函数 功能 用法 例子
left() 从字符串左边为边界返回相应长度的子字符串 left(str, length)
mysql> select left(‘vssf‘,3);

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

| left(‘vssf‘,3) |

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

| vss            |

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

1 row in set (0.00 sec)

right() 从字符串右边为边界返回相应长度的子字符串 rigth(str,length)
mysql> select right(‘vssf‘,1);

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

| right(‘vssf‘,1) |

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

| f               |

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

1 row in set (0.00 sec)

substring() 根据起始位置和长度返回相应的子字符串 substring(str,pos,length)
mysql> select substring(‘hello‘,1,1);

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

| substring(‘hello‘,1,1) |

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

| h                      |

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

1 row in set (0.00 sec)

mysql> select substring(‘hello‘,-4,1);

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

| substring(‘hello‘,-4,1) |

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

| e                       |

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

1 row in set (0.00 sec)

substring_index()
以某个字符(delim)为选取点,截取到该字符的所有字符.

count为正数时从左到改字符,为负数时从该字符到右。

如果找不到delim,则返回整个字符串

substring_index(str,delim,count)
mysql> select substring_index(‘hello.com.index‘,‘.‘,1);

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

| substring_index(‘hello.com.index‘,‘.‘,1) |

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

| hello                                    |

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

1 row in set (0.00 sec)

ASCII() 返回字符串str最左边字符的ascii码值,如果是空字符串,则返回0,如果是null,则返回null。输入是整型,也当做字符串处理 ascii(str)
mysql> select ascii(‘2‘);select ascii(2);

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

| ascii(‘2‘) |

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

|         50 |

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

1 row in set (0.00 sec)

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

| ascii(2) |

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

|       50 |

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

1 row in set (0.00 sec)

length() 计算字符串长度 length(str)
mysql> select length(user());

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

| length(user()) |

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

|             14 |

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

1 row in set (0.00 sec)

locate() 返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0 LOCATE(substr,str,pos)
mysql> select locate(‘123‘,‘141234‘,2);

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

| locate(‘123‘,‘141234‘,2) |

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

|                        3 |

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

1 row in set (0.00 sec)

instr() 返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒 INSTR(str,substr)
mysql> select instr(‘12345‘,‘123‘);

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

| instr(‘12345‘,‘123‘) |

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

|                    1 |

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

1 row in set (0.00 sec)

lpad() 返回字符串str,左面用字符串padstr填补直到str是len个字符长 LPAD (str,len,padstr)
mysql> select LPAD(‘123‘,10,‘456‘);

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

| LPAD(‘123‘,10,‘456‘) |

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

| 4564564123           |

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

1 row in set (0.00 sec)

ltrim() 返回删除了其前置空格字符的字符串str LTRIM(str)
mysql> select ltrim(‘   121‘);

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

| ltrim(‘   121‘) |

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

| 121             |

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

1 row in set (0.00 sec)

rtrim() 返回删除了其拖后空格字符的字符串str RTRIM(str)
mysql> select rtrim(‘121  ‘);

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

| rtrim(‘121  ‘) |

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

| 121            |

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

1 row in set (0.00 sec)

ucase() 返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的 UCASE(str)
mysql> select UCASE(‘sae‘);

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

| UCASE(‘sae‘) |

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

| SAE          |

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

1 row in set (0.00 sec)

lcase() 返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。 LCASE(str)
mysql> select LCASE(‘sS‘);

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

| LCASE(‘sS‘) |

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

| ss          |

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

1 row in set (0.00 sec)

make_set() 返回一个集合 (包含由“,”字符分隔的子串组成的一个字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0,str2对应位1,等等。在str1, str2, ...中的NULL串不添加到结果中。 MAKE_SET(bits,str1,str2,...)
mysql> select MAKE_SET(1|2,user,pass) from ctf;

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

| MAKE_SET(1|2,user,pass) |

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

| 1admin,11               |

| 4admin

,pass            |

| admin123,123            |

| admin,test

|

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

4 rows in set (0.00 sec)

reverse() 返回颠倒字符顺序的字符串str REVERSE(str)
mysql> select REVERSE(‘123‘);

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

| REVERSE(‘123‘) |

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

| 321            |

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

1 row in set (0.00 sec)

space() 返回由N个空格字符组成的一个字符串 SPACE(N)
mysql> select concat(1,SPACE(2),3);

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

| concat(1,SPACE(2),3) |

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

| 1  3                 |

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

1 row in set (0.00 sec)

soundex 返回str的一个同音字符串。听起来“大致相同”的2个字符串应该有相同的同音字符串。一个“标准”的同音字符串长是4个字符,但是SOUNDEX()函数返回一个任意长的字符串。你可以在结果上使用SUBSTRING()得到一个“标准”的 同音串。所有非数字字母字符在给定的字符串中被忽略。所有在A-Z之外的字符国际字母被当作元音。 SOUNDEX(str)
mysql> select soundex(‘hello‘);

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

| soundex(‘hello‘) |

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

| H400             |

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

1 row in set (0.00 sec)

trim() 返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTH、LEADING或TRAILING给出,BOTH被假定。如果remstr没被指定,空格被删除。 TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) 
mysql> select trim(‘ dsf ‘);

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

| trim(‘ dsf ‘) |

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

| dsf           |

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

1 row in set (0.00 sec)

mysql> select trim(leading ‘x‘ from ‘xxxbarxxx‘);

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

| trim(leading ‘x‘ from ‘xxxbarxxx‘) |

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

| barxxx                             |

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

1 row in set (0.00 sec)

mysql> select trim(trailing ‘x‘ from ‘xxxbarxxx‘);

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

| trim(trailing ‘x‘ from ‘xxxbarxxx‘) |

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

| xxxbar                              |

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

1 row in set (0.00 sec)

relace() 返回字符串str,其字符串from_str的所有出现由字符串to_str代替 REPLACE(str,from_str,to_str)
mysql> select replace(‘www.ok.com‘,‘w‘,‘q‘);

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

| replace(‘www.ok.com‘,‘w‘,‘q‘) |

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

| qqq.ok.com                    |

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

1 row in set (0.00 sec)

repeat() 返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。 REPEAT(str,count)
mysql> select repeat(‘223‘,2);

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

| repeat(‘223‘,2) |

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

| 223223          |

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

1 row in set (0.00 sec)

insert() 返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替 INSERT(str,pos,len,newstr)
mysql> select insert(‘dsfhdsa‘,3,4,‘ww‘);

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

| insert(‘dsfhdsa‘,3,4,‘ww‘) |

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

| dswwa                      |

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

1 row in set (0.00 sec)

elt() 如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算 ELT(N,str1,str2,str3,...)
mysql> select elt(1,user(),version());

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

| elt(1,user(),version()) |

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

| [email protected]          |

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

1 row in set (0.00 sec)

mysql> select elt(2,user(),version());

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

| elt(2,user(),version()) |

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

| 5.5.47                  |

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

1 row in set (0.00 sec)

field() 返回str在str1, str2, str3, ...清单的索引。如果str没找到,返回0。FIELD()是ELT()反运算 FIELD(str,str1,str2,str3,...)
mysql> select field(‘v‘,‘he‘,‘hekl‘);

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

| field(‘v‘,‘he‘,‘hekl‘) |

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

|                      0 |

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

1 row in set (0.00 sec)

mid() 根据起始位置和长度返回相应的子字符串,与substring一样的用法 MID(ColumnName, Start [, Length])
mysql> select mid(‘sfsdf‘,2,1);

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

| mid(‘sfsdf‘,2,1) |

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

| f                |

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

1 row in set (0.00 sec)

mysql> select mid(‘sfsdf‘,2);

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

| mid(‘sfsdf‘,2) |

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

| fsdf           |

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

1 row in set (0.00 sec)

concat() 连接参数str1,str2等产生字符串,若参数中包含有NULL,则直接返回null CONCAT(str1,str2,…)
mysql> select concat(‘1‘,‘2‘);

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

| concat(‘1‘,‘2‘) |

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

| 12              |

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

1 row in set (0.00 sec)

mysql> select concat(‘1‘,‘2‘,null);

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

| concat(‘1‘,‘2‘,null) |

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

| NULL                 |

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

1 row in set (0.00 sec)

concat_wd() 连接参数产生字符串,可自定义分隔符,参数中有null,也不会返回null,正常返回其他字符串连接的结果 CONCAT_WS(separator,str1,str2,...)
mysql> select concat_ws(‘,‘,‘2‘,‘3‘,null);

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

| concat_ws(‘,‘,‘2‘,‘3‘,null) |

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

| 2,3                         |

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

1 row in set (0.00 sec)

group_concat() 连接参数产生字符串,可定义分隔符,可去重,可排序
group_concat([DISTINCT] 要连接的

字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])


mysql> select group_concat(user,pass) from ctf;

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

| group_concat(user,pass)                     |

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

| 1admin11,4admin

pass,admin123123,admintest

|

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

1 row in set (0.00 sec)

时间: 2024-10-13 10:21:35

mysql字符串操作相关函数用法总结的相关文章

mysql常用字符串操作函数大全

测试表 CREATE TABLE `string_test` ( `id` int(11) NOT NULL auto_increment COMMENT '用户ID', `name` varchar(50) NOT NULL default '' COMMENT '名称', `job` varchar(23) NOT NULL COMMENT '工作', `sex` tinyint(1) NOT NULL default '1' COMMENT '性别', `hobby` varchar(10

mysql常用字符串操作函数大全,以及实例

今天在论坛中看到一个关于mysql的问题,问题如下 good_id     cat_id12654         665,56912655         601,4722 goods_id是商品idcat_id是分类id当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了. 如果用like做的话,肯定会有问题的,我的开始的想法是,把cat_id里面的字符

Mysql字符串函数FIND_IN_SET()的两点用法

概要:该可以查询用逗号分割的字段,以及对结果进行强制排序 首先看一张表: colid vyear area cast ,31,32,21,12 2014 1 15 ,32,33,34,35,21, 2014 2 16 ,33,34,36,39,40 2011 3 17 表中的colid字段的值是以逗号分割, 当我们需要查询这张表中,colid含有32的行, 那么可以用FIND_IN_SET() SQL如下: SELECT * FROM table WHERE FIND_IN_SET('32',

JavaScript中常见的字符串操作函数及用法汇总

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: ? 1 2 var num= 19; // 19 var myStr = num.toString(); // "19" 你同样可以这么做: ? 1 2 var num= 19; // 19 var myStr = String(num); // "19" 或者,再简单点儿: ? 1 2 var num= 19; // 19 var myStr =

mysql之字符串操作

写在前面 上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数. 系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete,update mysql之group by,order by mysql之count,max,min,sum,avg,celing,floor mysql之日期函数 mysql实战 1.ASCII(str) select ascii('a'); select ascii('ab'); select

MySQL replace函数替换字符串语句的用法(mysql字符串替换)

MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪. 最近在研究CMS,在数据转换的时候需要用到mysql的MySQL replace函数,这里简单介绍一下. 比如你要将表 tb1里面的 f1字段的abc替换为def UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 str 中所有出现

MySQL数据库操作类(PHP实现,支持连贯操作)

使用过ThinkPHP框架的同学可能会对于其中数据库模型操作特别有好感,ThinkPHP提供了数据库操作的简单的操作,对于连接数据库,数据库的增删改查等数据操作都非常的nice,同时支持连贯操作,对于那些不习惯写sql语句的同学真是大大的便利.(注:sql还是很重要的,不要因为用了框架就把原先的忘了). 而在笔者使用php操作redis实现后台任务的过程中,也想要借助这种便利,但无奈redis操作单独的类,直接访问其中的controller文件的话,总是会提示M方法失败,导致此模型方法不能使用.

mysql中UNION ALL用法

MYSQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果. 举例说明: select * from table1 union select * from table2 这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序. MySQL中的UNION ALL UNION ALL只是简单的将两个结果合并后就返回.这样,如果返回的两个结果集

MYSQL 基础操作

1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样) insert into t3 select * from t1; --t1的数据全部拿过来,注意是表结构一致才select* ,否则选择相应的的字段列插入 create table t1( id int unsigned not null auto_increment primary key,