1.LEFT函数

LEFT函数用于从给定字符串的左侧提取指定数量的字符

语法结构

LEFT(str,len)

str: 给定的字符串,将从其左侧提取字符

len: 要提取的字符数,如果此参数大于字符串中的字符数,则此函数将返回实际的字符串

注意: 如果任一参数为Null,结果返回Null

示例 

-- 结果为空
SELECT LEFT('abcdefg',0);
-- abc
SELECT LEFT('abcdefg',3);
-- abcdefg
SELECT LEFT('abcdefg',10);
-- Null
SELECT LEFT('abcd',NULL);
-- LEFT函数可以截取数字
-- 12
SELECT LEFT(123456,2);

2.RIGHT函数

RIGHT函数用于从给定字符串的右侧提取指定数量的字符

语法结构

RIGHT(str,len)

str: 给定的字符串,将从其右侧提取字符

len: 要提取的字符数,如果此参数大于字符串中的字符数,则此函数将返回实际的字符串

注意: 如果任一参数为Null,结果返回Null

示例 

-- 结果为空
SELECT RIGHT('abcdefg',0);
-- efg
SELECT RIGHT('abcdefg',3);
-- abcdefg
SELECT RIGHT('abcdefg',10);
-- Null
SELECT RIGHT('abcd',NULL);
-- RIGHT函数可以截取数字
-- 56
SELECT RIGHT(123456,2);

练习案例 

导入数据

DROP TABLE IF EXISTS `employee_info`;
CREATE TABLE `employee_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `salary` int(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

INSERT INTO `employee_info` VALUES ('1', 'Odin', '13810809401', '10000');
INSERT INTO `employee_info` VALUES ('2', 'Kacky', '15820126789', '12000');
INSERT INTO `employee_info` VALUES ('3', 'Jerry', '15815810158', '11000');
INSERT INTO `employee_info` VALUES ('4', 'Harry', '15820176889', '13000');
INSERT INTO `employee_info` VALUES ('5', 'Sun', '13578945621', '9000');

employee_info表 

问题: 将员工手机号码进行加密处理(例如:138****9401) ,按薪资升序输出数据(name,phone,salary格式进行输出)

SELECT name, CONCAT(LEFT(phone,3),'****',RIGHT(phone,4))AS phone, salary
FROM employee_info
ORDER BY salary ASC;

结果展示:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐