ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【MySQL】单列函数-字符串函数

2022-08-11 14:33:13  阅读:151  来源: 互联网

标签:函数 -- 单列 hello str MySQL 字符串 s1 SELECT


字符串函数

目录
MySQL中,字符串的位置是从1开始的。

1.第一部分

函数 小写 用法
ASCII(s) 返回字符串S中的第一个字符的ASCII码值
CHAR_LENGTH(s) char_length 返回字符串s的字符数,作用与CHARACTER_LENGTH(s)相同
LENGTH(s) length 返回字符串s的字节数,和字符集有关
CONCAT(s1,s2,...,sn) concat 连接s1,s2,...,sn为一个字符串
CONCAT_WS(x,s1,s2,...,sn) 连接s1,s2,...,sn为一个字符串,每个字符串之间加上x
INSERT(str,index,len,repStr) insert 将字符串str的index位置开始len长的子串替换为字符串repStr
REPLACE(str,a,b) replace 用字符串b替换字符串str中出现的所有字符串a
UPPER(s)或UCASE(s) uppper,case 将字符串s所有字母转成大写
LOWER(s)或LCASE(s) lower,lcase 将字符串s所有字母转成小写

示例1:

SELECT 
	ASCII('Abcdfsf'),ASCII('abcdfsf'),	-- 65 97	第一个字符ASCII码值
	CHAR_LENGTH('hello'),CHAR_LENGTH('我们'),   -- 5 2	字符数
	LENGTH('hello'),LENGTH('我们')	-- 5	6		字节数
FROM DUAL;

示例2:

SELECT 
	CONCAT(emp.last_name,' worked for ',mgr.last_name) "details"
FROM employees emp JOIN employees mgr
WHERE emp.`manager_id`= mgr.employee_id;

SELECT
	CONCAT_WS('-','hello','world','hello','beijing')   -- hello-world-hello-beijing
FROM DUAL;

image

示例3:

SELECT
	INSERT('helloworld',2,3,'aaaa'),	-- haaaaoworld 从2开始替换3个
	REPLACE('hello','lol','mmm'),REPLACE('hello','llo','mmm')  -- hello hemmm
FROM DUAL;

SELECT
	UPPER('Hello'),    -- HELLO
	LOWER('Hello')     -- hello
FROM DUAL;

SELECT last_name,salary
FROM employees
WHERE LOWER(last_name) = 'King';

2.第二部分

函数 小写 用法
LEFT(str,n) left 返回字符串str最左边的n个字符
RIGHT(str,n) right 返回字符串str最右边的n个字符
LPAD(str,len,pStr) left padding 用字符串pStr对str最左边进行填充,直到str的长度为len个字符
RPAD(str,len,pStr) right padding 用字符串pStr对str最右边边进行填充,直到str的长度为len个字符
LTRIM(s) left trim 去除字符串s左侧的空格
RTRIM(s) right trim 去除字符串s右侧的空格
TRIM(s) trim 去掉字符串s开始与结尾的空格
TRIM(s1 FROM s) trim 去掉字符串s开始与结尾的s1
TRIM(LEADING s1 FROM s) leading 主导 去掉字符串s开始处的s1
TRIM(TRAILING s1 FROM s) trailing 尾随 去掉字符串s结尾处的s1

示例1:

SELECT 
	LEFT('hello',2),  -- he
	RIGHT('hello',3),RIGHT('hello',13)  -- llo hello
FROM DUAL;

SELECT 
	employee_id,last_name,LPAD(salary,10,'#')
FROM employees;

SELECT 
	CONCAT('---',LTRIM('   h  el  lo    '),'***'),  -- ---h  el  lo  ***
	TRIM('oo' FROM 'ooheollo')   -- heollo
FROM DUAL;

示例2:

SELECT 
	REPEAT('hello',3),   -- hellohellohello
	LENGTH(SPACE(5)),   -- 5
	STRCMP('abc','abe')  -- -1
FROM DUAL;

SELECT
	SUBSTR('hello',2,2),  -- el
	LOCATE('lll','hello')  -- 0
FROM DUAL;

SELECT 
	ELT(2,'a','b','c','d'),  -- b
	FIELD('mm','gg','jj','mm','dd','mm'),  -- 3
	FIND_IN_SET('mm','gg,mm,jj,dd,mm,gg')   -- 2
FROM DUAL;

SELECT 
	employee_id,NULLIF(LENGTH(first_name),LENGTH(last_name)) "compare"
FROM employees;

image

3.第三部分

函数 小写 用法
REPEAT(str,n) repeat 返回str重复n次的结果
SPACE(n) space 返回n个空格
STRCMP(s1,s2) string compare 比较字符串s1,s2的ASCII码值的大小
SUBSTR(s,index,len) substring 截取字符串s,从index位置开始len个字符,作用与SUBSTRING(s,n,len)、MID(s,n,len)相同
LOCATE(substr,str) locate 返回字符串substr在str首次出现的位置,作用与POSITION(substr IN str)、INSTR(str,substr)相同。未找到则返回0
ELT(m,s1,s2,...,sn) Extract Load Transform 返回指定位置的字符串,m=1返回s1;m=2返回s2;m=n返回sn
FIELD(s,s1,s2,...,sn) field 返回字符串s在字符串列表中第一次出现的位置
FIND_IN_SET(s1,s2) find_in_set 返回字符串s1在字符串s2中出现的位置。其中,字符串s2是一个以逗号分隔的字符串
REVERSE(s) reverse 返回s反转后的字符串
NULLLIF(s1,s2) null if 比较两个字符串,如果s1与s2相等,则返回null;否则返回s1
SELECT 
	FIELD('mm','hello','msm','amma'),   -- 0 后续字符串中没有出现mm
	FIND_IN_SET('mm','hello,mm,amma'),    -- 2
	NULLIF('mysql','mysql'),NULLIF('mysql','')  -- null mysql
FROM DUAL;

image

标签:函数,--,单列,hello,str,MySQL,字符串,s1,SELECT
来源: https://www.cnblogs.com/zhishu/p/16575474.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有