资讯专栏INFORMATION COLUMN

MySQL必知必会(6):常用文本字符串处理函数

xuxueli / 1130人阅读

摘要:编程语言中经常使用函数来处理一些字符串,数字或者其他内容。所以如果需要移植要慎重使用函数。该函数有两个参数,第一个参数为字符串,第二个参数为字符串长度。还有另外两个相似函数去除字符串左侧空格去除字符串右侧空格字符串截取函数。

编程语言中经常使用函数来处理一些字符串,数字或者其他内容。MySQL也是一样,可以使用函数来快速达到一系列的目的。

在上一篇文章《计算字段的使用》中,我们提前使用了一个trim函数,来处理字符串两端的空格。而这篇文章就是专门讲解一些实际工作中常用函数。

原文链接:https://weiya.me/item/67.html

函数

MySQL支持以下常用函数:

文本处理函数

数值数据处理函数

日期时间处理函数

MySQL一些特殊信息,比如版本信息函数

本篇文章主要介绍:文本处理函数,一般用于处理字符串,比如删除、填充、转换大小写等等操作

提示: SQL语句具有较强的可移植性。比如在Mysql中使用的SQL语句,搬到postgresql中使用起来问题也不大。但是,在SQL语句中使用的函数可移植性较差,实现相同功能的函数在不同DBMS中可能完全不一样。所以如果需要移植SQL要慎重使用函数。

准备

首先我们先建立一个数据表,同时填入一些数据,下面我们将使用此表

-- ----------------------------
-- Table structure for fun_text
-- ----------------------------
DROP TABLE IF EXISTS `fun_text`;
CREATE TABLE `fun_text` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of fun_text
-- ----------------------------
INSERT INTO `fun_text` VALUES ("1", "1234567890");
INSERT INTO `fun_text` VALUES ("2", "abc");
INSERT INTO `fun_text` VALUES ("3", "ABC");
INSERT INTO `fun_text` VALUES ("4", "  abc  ");
INSERT INTO `fun_text` VALUES ("5", "lee");

下面我们直接列举一些常用MySQL字符串处理函数,及其用法实例

LEFT()

用于返回字符串左侧的字符。

该函数有两个参数,第一个参数为字符串,第二个参数为字符串长度。字符串长度为2,就从字符串的左侧截取两个字符串返回。

SELECT id,LEFT(content,3) AS left_content FROM fun_text WHERE id="1"

我们从上表中返回了id=1的记录的content字段的左侧3个字符

TIP: 该函数还有相似函数RIGHT()用于返回字符串右侧的字符,用法类似。

LENGTH()

这个函数很简单,返回字符串的长度。

SELECT id,LENGTH(content) AS content_length FROM fun_text WHERE id="1"

我们返回了id=1的记录的content长度为10

LOCATE()

返回一个字符串在另一个字符串中第一次出现的位置,如果没有发现就返回0.

SELECT id,LOCATE("234", content) AS locate_content  FROM fun_text WHERE id="1";

之前id=1content字段内容为1234567890234的起始位置为2. 所以,如果在开始位置查找到,那么返回是1而不是0

LOWER()

将字符串全部转换为小写字母

我们使用id=3的记录来操作。

SELECT id,LOWER(content) AS lower_content FROM fun_text WHERE id="3";

可以看到,之前的大写ABC被转换成了小写的字母abc

TIP: 该函数还有一个相反函数UPPER()可以将小写字母均转换为大写字母

TRIM()

去除字符串两边的空格。

这次使用id=4的记录作为演示,content字段两边包含了空格。

SELECT id,TRIM(content) AS trim_content FROM fun_text WHERE id="4";

可以看到,字符串两边的空格都被去除了。

TIP: 还有另外两个相似函数:1、LTRIM():去除字符串左侧空格;2、RTRIM()去除字符串右侧空格

SUBSTRING()

字符串截取函数。该函数与LEFT()RIGHT()函数有点儿类似,都可以截取字符串,只不过功能更加强大。

1、从第N个字符串开始截取

SELECT id,SUBSTRING(content,5) AS sub_content FROM fun_text WHERE id="1";

我们使用id=1记录,截取content字段,并且是从第5个字符串开始截取,所以结果为567890

2、从第N个字符串开始截取,截取M个字符

SELECT id,SUBSTRING(content,5,2) AS sub_content FROM fun_text WHERE id="1";

这个方法去截取字符串是不是有更多的自由

SOUNDEX()

最后说一个不同于之前的字符处理函数SOUNDEX(),这个函数可以将一个单词的读音转换成与它相似的读音的单词。简单的来说,就是讲方言转换为普通话的意思。这个在搜索中十分的好使。

我们拿上面的id=5的记录来举个例子,记录的content值为lee,但是有个方言用户输入了lie,无论是模糊查询还是精确查询都是无法匹配到lee结果,但是使用了soundex函数则可以改变这些。

SELECT * FROM fun_text WHERE SOUNDEX(content) = SOUNDEX("lie");

观察上面的例子,lie是不等于lee的,但是SOUNDEX(content) = SOUNDEX("lie"),因为lielee的读音十分相似。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22891.html

相关文章

  • Mysql必知必会(5):计算字段的使用

    摘要:计算字段是在检索过程中建立的虚拟字段,他们并不实际存在于数据库中。计算字段和程序处理之间关系数据库这种临时处理数据,格式化输出的结果,都可以使用编程语言来实现。之间多个值使用逗号分割。过滤字段上面使用来组合字段。 本文主要介绍Mysql中计算字段的使用方法 我博客文章地址:http://weiya.me/item/60.html 简介 在创建数据库表的时候,往往为了数据库的各种性能,我...

    高璐 评论0 收藏0
  • 前端必知必会HTTP请求系列(二)简单一点的HTTP协议

    摘要:通过请求和响应的交换达成通信协议中已经规定了请求是从客户端发出,最后由服务端响应这个请求并返回。随后的字符串指明了请求访问的资源对象。协议自身不对请求和响应之间的通信状态进行保存,也就是说这个级别。从前发送请求后需等待并受到响应。 showImg(https://segmentfault.com/img/bVbmDsG?w=1024&h=538); http协议用户客户端和服务器之间的...

    xbynet 评论0 收藏0

发表评论

0条评论

xuxueli

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<