-- 字符串函数 -- 1. length() -- 长度函数 /** 注意事项 1.必须要有参数 2.参数不能为 null 或null值表达式 3.中文根据具体环境 ,一般情况utf8下 一个中文对应3个字符 */ SELECT LENGTH(); -- error , native function SELECT LENGTH(123); -- 3 SELECT LENGTH(NULL); -- null SELECT LENGTH('中a'); -- tf8 下 4(utf8下一个汉字三个字节) gbk下3 SELECT LENGTH(NULL+'tom'); -- null SELECT LENGTH(1+'a'); -- 1 SELECT LENGTH(1+'123'); -- 3 SELECT LENGTH(`name`) FROM ms_nick; -- 2. concat() -- 连接函数 /** 注意事项 1.参数不可为空 2.参数不可为 null 或 null值表达式 -- 无意义 3、参数可以任意多个 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 */ SELECT CONCAT(); -- error , native function SELECT CONCAT(NULL); -- null SELECT CONCAT(123); -- 123 SELECT CONCAT(123,25); -- 12325 SELECT CONCAT(123,NULL); -- NULL SELECT CONCAT(123,'tom','456'); -- 123tom456 -- 带连接符的 CONCAT_WS(separator,str1,str2,...) SELECT * FROM emp WHERE NAME LIKE CONCAT('%','tomcat','%'); -- 返回字符串 str 中子字符串的第一个出现位置。 没有则返回0 SELECT INSTR('abc','a'); -- 1 SELECT INSTR('abc','v'); -- 0 -- 填充函数 -- LPAD(str,len,padstr) 返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。 -- 假如str 的长度大于len, 则返回值被缩短至 len 字符。 -- RPAD(str,len,padstr) 返回字符串str, 其右边被字符串 padstr填补至len 字符长度。 -- 假如字符串str 的长度大于 len,则返回值被缩短到与 len 字符相同长度。 SELECT LPAD('1200',5,'*'); -- *1200 SELECT LPAD('1200',3,'*'); -- 120 SELECT RPAD('1200',5,'*'); -- 1200* SELECT RPAD('1200',3,'*'); -- 120 -- REPEAT(str,count) -- 返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。 -- 若 count <= 0,则返回一个空字符串。若str 或 count 为 NULL,则返回 NULL 。 -- 若字符是空字符 则不会进行重复操作 -- 但是 可以为 空格字符串 SELECT REPEAT('A', 3); -- AAA SELECT REPEAT('A', -3); -- 0B SELECT REPEAT(NULL, -3); -- null SELECT REPEAT(NULL, 3); -- null SELECT REPEAT('', 3); -- '' SELECT REPEAT(' ', 3); -- ' ' SELECT LENGTH(REPEAT('', 3)); -- 0 等价于 space(3) SELECT LENGTH(REPEAT(' ', 3)); -- 3 SELECT LENGTH(SPACE(3)); -- 3 -- 去空格函数 -- TRIM(str) 返回字符串 str ,其首尾空格字符被删除。 -- LTRIM(str) 返回字符串 str ,其左空格字符被删除。 -- RTRIM(str) 返回字符串 str ,其尾空格字符被删除。 SELECT LENGTH(TRIM(' ba ')); -- 2 SELECT LENGTH(LTRIM(' ba ')); -- 3 SELECT LENGTH(RTRIM(' ba ')); -- 3 -- 强大的trim -- TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) -- TRIM(remstr FROM str) -- 返回字符串 str , 其中所有remstr 前缀和/或后缀都已被删除。 -- 若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则默认为BOTH 。 -- remstr 为可选项,在未指定情况下,可删除空格。 SELECT TRIM(' bar '); -- 'bar' SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -- 'barxxx' SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -- 'bar' SELECT TRIM( 'x' FROM 'xxxbarxxx'); -- 'bar' SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -- 'barx' -- 替换函数 -- REPLACE(str,from_str,to_str) -- 返回字符串str 以及所有被字符串to_str替代的字符串from_str 。 -- 会替换所有匹配的内容 SELECT REPLACE('www.mysql.com', 'w', 'T'); -- TTT.mysql.com -- 替换的字符将作为一个整体 SELECT REPLACE('www.mysql.com', 'ww', 'T'); -- Tw.mysql.com -- 不存在则不变 SELECT REPLACE('www.mysql.com', 'wws', 'b'); -- www.mysql.com -- 截取函数 -- RIGHT(str,len) 从字符串str 开始,返回最右len 字符。 -- LEFT(str,len) 从字符串str 开始,返回最左len 字符。 SELECT RIGHT('mysql', 3); -- sql SELECT RIGHT('mysql', 5); -- mysql SELECT RIGHT('mysql', 6); -- mysql SELECT RIGHT('mysql', 0); -- 空字符串 SELECT RIGHT('mysql', -1); -- 空字符串 SELECT LEFT('mysql', 2); -- my SELECT LEFT('mysql', 5); -- mysql SELECT LEFT('mysql', 6); -- mysql SELECT LEFT('mysql', 0); -- 空字符串 SELECT LEFT('mysql', -1); -- 空字符串 -- SUBSTRING(str,pos) , -- str 被截取的字符串 pos 开始截取的位置 -- SUBSTRING(str FROM pos) -- 等价于上面 -- SUBSTRING(str,pos,len) , -- str 被截取的字符串 pos 开始截取的位置 len 截取的长度 -- SUBSTRING(str FROM pos FOR len) -- 等价于上面 -- 不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。 -- 带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 -- 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。 -- 假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。 -- 在以下格式的函数中可以对pos 使用一个负值。 SELECT SUBSTRING('tomcat',4); -- cat SELECT SUBSTRING('tomcat' FROM 4); -- cat SELECT SUBSTRING('tomcat',4,2); -- ca SELECT SUBSTRING('tomcat' FROM 4 FOR 2); -- ca -- 注意, -- substr 等价于substring -- pos 是可以为负值 顺序为逆序 -- 如果对len使用的是一个小于1的值,则结果始终为空字符串。 SELECT SUBSTRING('tomcat',-4); -- mcat SELECT SUBSTR('tomcat',-4); -- mcat SELECT SUBSTRING('tomcat',-4,2); -- mc SELECT SUBSTRING('tomcat',-4,-2); -- 空字符串 -- REVERSE(str) 反转函数 -- 返回字符串 str ,顺序和字符顺序相反。 SELECT REVERSE('abcd'); -- dcba SELECT REVERSE(NULL); -- null -- 大小写转换 -- UPPER(str) SELECT UPPER('tom'); -- TOM SELECT LOWER('TOM'); -- tom -- 'tomcat' 首字母转换为大写 SELECT CONCAT(UPPER(LEFT('tomcat',1)),SUBSTR('tomcat',2)) AS res;
Mysql常用函数 -- 字符函数
猜你喜欢
转载自blog.csdn.net/sunrainamazing/article/details/80749524
今日推荐
周排行