SQL学习(4)——MySQL数据库常用的函数--常见的字符串函数

来源:互联网 发布:虚拟光驱 for mac 编辑:程序博客网 时间:2024/06/03 20:58

四、常见的字符串函数

<1>LENGTH(str):
求字符串长度(以字节为单位),返回字符串str的字节长度。
注:在GBK编码中,一个中文字符为2个字节。UTF-8编码中,一个中文字符为3个字节,一个英文字符为1个字节
例:

*SELECT LENGTH('玩s')*返回结果为4

<2>CHAR_LENGTH(str):
获取字符串的长度,单位为字符。
例:

*SELECT CHAR_LENGTH('玩s')*返回结果为2

<3>FORMAT(X,D):
以四舍五入的方式保留X小数点的后D位,返回结果以字符串的形式。
注:若D为0,则返回结果不包含小数部分。
例:

*SELECT FORMAT(20.45684,3)*返回结果:20.457
*SELECT FORMAT(20.45684,0)*返回结果:20

<4>INSERT(str,pos,len,newstr):
从原str的pos位置开始,用字符串newstr来替换,替换长度为len。

例:

*SELECT INSERT('study',1,5,'learn');*返回结果:learn
*SELECT INSERT('study',5,1,'learn');*返回结果:studlearn

下面我们来看一个有意思的情况

*SELECT INSERT('study',6,1,'learn');*

这个返回结果会是什么呢?按照我们的想法应该是:study
而真正的结果如下:
这里写图片描述

总结:若pos的值>(strlength+1),此时返回str,若pos=strlength,则返回str+newstr。若len超过可替换的长度,则从位置pos加上newstr。若四个参数中有一个null,则返回null。

<5>INSTR(str,substr):
返回字符串str中首次出现子字符串substr的位置。
例:

*SELECT INSTR('learning','ing');*返回结果:6

<6>LEFT/RIGHT:字符串截取
LEFT(str,len):左截取,返回字符串str中从左边开始,前len个字符。
RIGTH(str,len):右截取,返回字符串str中从右边开始,前len个字符。
例:

*SELECT LEFT('study',3)*返回结果:stu

<7>强大的TRIM()函数。
(1)、LTRIM(str):去掉左边的空格。

*SELECT LTRIM(' study')*返回结果:study

(2)、RTRIM(str):去掉右边的空格。

*SELECT RTRIM('study ')*返回结果:study

(3)、TRIM(str): 将字串首尾两端的空格移除,作用等于RTRIM和LTRIM两个函数共同的结果。

SELECT trim(' study ')返回结果:study

(4)、ALLTRIM(str):将字串左右边两边的空格移除。

(5)、trim函数去除指定的开头字符

select trim(leading 'x' from 'xstudy')返回结果:study

(6)、trim函数去除指定的结尾字符

select trim(trailing 'o' from 'studyo')返回结果:study

(7)、trim函数去除指定的首部和尾部字符

select trim(both 'o' from 'ostudyo')返回结果:study

(8)、默认情况下,trim函数会去除首部和尾部,被指定的字符

select trim('o from 'ostudyo')返回结果:study

(9)、如果没有指定被移除的字符,则会默认去除首部和尾部的空格

select trim(' study ')返回结果:study

<8>、STRCMP(expr1,expr2):判断字符串是否相等
若相等返回0,若expr1 < expr2返回-1,其余情况返回1。
注:此处字符串的大小根据ANSI编码来比较。

SELECT STRCMP(30,30)返回结果:0

<9>、concat:字符串拼接
CONCAT(str1,str2,…):返回结果为将str1,str2…拼接之后产生的字符串。若任何一个为null,则返回null。

SELECT CONCAT('I','like','learning')返回结果:Ilikelearning
阅读全文
0 0
原创粉丝点击