mysql常见string相关函数

ASCII (str)

参数为string,返回最左侧字节的ascii码。String值为0返回0,为NULL返回NULL

mysql> SELECT ASCII('0');

-> 48

mysql> SELECT ASCII(0);

-> 48

mysql> SELECT ASCII('d');

-> 100

BIN (N)

参数为bigint,返回二进制编码,参数为NULL返回NULL

mysql> SELECT BIN(5);

-> '101'

CHAR(N,... [USING charset_name] )

参数为一串ascii码,返回string,

Example:

mysql> SELECTCHAR(77,121,83,81,'76');

-> 'MySQL'

mysql> SELECTCHAR(66,66.3,'66.3');

-> 'BBB'

CHAR_LENGTH(str) and CHARACTER_LENGTH(str)

返回字串长度.

BIT_LENGTH (str)

参数为string,返回其位长度:

mysql> SELECTBIT_LENGTH('a');

-> 8

CONCAT(str1, str2..)

连接字符串,如果参数中有NULL,则结果返回NULL.

Example:

mysql> SELECT CONCAT('In','d', 'ia');

-> 'India'

mysql> SELECT CONCAT('my',NULL, 'ql');

-> NULL

mysql> SELECT CONCAT(10.3);

-> '10.3'

CONCAT_WS(separator str1, str2,....)

连接字串,第一个参数为连接符

Example:

mysql> SELECTCONCAT_WS(',', ' Title', 'First name', 'Last Name');

-> 'Title, First name, LastName'

mysql> SELECTCONCAT_WS(',', 'First name', NULL, 'Last Name');

-> 'First name, Last Name'

CONV (N, from_base, to_base)

conv函数用于数字的进制转换, N是要转换的数据,from_base是原进制,to_base是目标进制

Example:

mysql> SELECT CONV('a',10,2);

-> '0'

mysql> SELECTCONV('6E',10,5);

-> '11'

mysql> SELECTCONV(-17,9,-25);

-> '-G'

mysql> SELECTCONV(10+'10'+'10'+0xa,10,5);

-> '130'

hex(N)相当于conv(N,10,16)

oct(N)相当于conv(N,10,8)

bin(N)相当于conv(N,10,2)

ELT(N,str1,str2,str3,...)

如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL

Example:

mysql> SELECT ELT(1, '9','10', '11', '12');

-> '9'

mysql> SELECT ELT(4, '9','10', '11', '12');

-> '12'

FIELD(str,str1,str2,str3,...)

返回值为str1, str2, str3,……列表中的str 次序数。在找不到str 的情况下,返回值为 0 。.

Example:

mysql> SELECT FIELD ('AA','BB', 'AA', 'CC');

-> 2

mysql> SELECT FIELD ('AA','BB', 'CC', 'DD');

-> 0

FIND_IN_SET(str,strlist)

若字符串str 在由N 子链组成的字符串列表strlist中,则返回值的范围在1到N之间。否则为0。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。

Example:

mysql> SELECT FIND_IN_SET('2','1,2,3,4');

-> 2

FORMAT(X,D)

控制浮点数X小数点后位数 :

Example:

mysql> SELECTFORMAT(1235.14687, 3);

-> 1,235.147

mysql> SELECTFORMAT(145678.1,2);

-> 145,678.10

mysql> SELECTFORMAT(24567.1,0);

-> 24567

HEX(N_or_S)

返回16进制数据

Example:

mysql> SELECT HEX(10);

-> 'A'

mysql> SELECT HEX( 'abd');

-> 616264

INSERT(str,pos,len,newstr)

在str中从pos位置开始用newstr替换长度为len的字串

Example:

mysql> SELECTINSERT('roseindia',2,3,'net');

-> rnetindia

mysql> SELECTINSERT('roseindia',-1,3,'net');

-> roseindia

mysql> SELECTINSERT('roseindia',3,100,'net');

->ronet

INSTR(str,substr)

返回子串substr在字符串str中的第一个出现的位置

Example:

mysql> SELECTINSTR('roseindia','e');

-> '4'

mysql> SELECT INSTR('xe','roseindia');

-> '0'

LOWER(str) / LCASE(str)

返回小写字串

mysql> SELECTLOWER('ROSEINDIA');

->'roseindia'

LEFT(str,len)

取字串左端长为len的子串.

Example:

mysql> SELECTLEFT('roseindia', 4);

-> 'rose'

LENGTH(str)

返回字符串长度

Example:

mysql> SELECTLENGTH("roseindia");

->'9'

LOAD_FILE(file_name)

读取文件信息,将其内容作为字符串返回

mysql> SELECTLOAD_FILE('C:/MySQL/MySQL Server 5.0/data');

LOCATE(substr,str),LOCATE(substr,str,pos)

返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0。Pos是可选参数,表示从哪个位置开始搜索。

Example:

mysql> SELECTLOCATE('in','roseindia');

-> 5

mysql> SELECT LOCATE('xin','roseindia');

-> 0

mysql> SELECTLOCATE('d','roseindia',4);

-> 7

lpad(string,n,[pad_string] )

string:可是字符或者参数

n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

pad_string:是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。

Example:

mysql> SELECTLPAD('hello',7,'??');

->??hello

mysql> SELECTLPAD('hello',1,'??');

-> h

LTRIM(str)

去str左侧空格

Example:

mysql> SELECT LTRIM(' roseindia');

-> 'roseindia'

MID(str,pos,len)

与SUBSTRING(str,pos,len)相同

OCT(N)

返回八进制数据

Example:

mysql> SELECT OCT(12);

-> '14'

POSITION(substr IN str)

The POSITION(substr IN str) function issame as LOCATE (substr, str).

REPEAT (str, count)

将str重复count次.

mysql> SELECTREPEAT('Rose', 3);

->'RoseRoseRose'

REPLACE (str, from_str, to_str)

替换字串,str为源字串,from_str为将要被替换的字串, to_str为目的字串

mysql> SELECT REPLACE('www.roseindia.net', 'w', 'W');

->'WWW.roseindia.net';

REVERSE(str)

反序

Example:

mysql> SELECTREVERSE('123');

-> '321'

RIGHT(str, len)

取字串右端长为len的子串.

Example :

mysql> SELECT RIGHT('Roseindia', 5);

->'india'

RPAD(str, len, padstr)

rpad(string,n,[pad_string])

string:可是字符或者参数

n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

pad_string:是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。

Example :

mysql> SELECT RPAD ('rose',7, '?');

->'rose???'

RTRIM(str)

去掉str右侧空格

Example :

mysql> SELECT RTRIM('rose ');

->'rose'

SPACE(N)

返回长度为N的空格字串

Example :

mysql> SELECT SPACE(5);

-> ' '

SUBSTRING(str,pos), SUBSTRING(str FROMpos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)

字符串截取函数,str为源字串,pos为开始截取的位置,len可选,为截取字符串长度.

Example :

mysql> SELECTSUBSTRING('RoseIndia',5);

-> 'India'

mysql> SELECTSUBSTRING('RoseIndia' FROM 5);

-> 'India'

mysql> SELECTSUBSTRING('RoseIndia',5,3);

-> 'Ind'

UPPER(str)

返回大写字串.

Example :

mysql> SELECTUPPER('roseindia');

->'ROSEINDIA'


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值