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

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

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

原文连接:https://weiya.me/item/67.html编程

函数

MySQL支持如下经常使用函数:编程语言

  • 文本处理函数函数

  • 数值数据处理函数post

  • 日期时间处理函数spa

  • MySQL一些特殊信息,好比版本信息函数postgresql

本篇文章主要介绍:文本处理函数,通常用于处理字符串,好比删除、填充、转换大小写等等操做code

提示: SQL语句具备较强的可移植性。好比在Mysql中使用的SQL语句,搬到postgresql中使用起来问题也不大。可是,在SQL语句中使用的函数可移植性较差,实现相同功能的函数在不一样DBMS中可能彻底不同。因此若是须要移植SQL要慎重使用函数。htm

准备

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

image

-- ----------------------------
-- 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'

image

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

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

LENGTH()

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

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

image

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

LOCATE()

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

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

image

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

LOWER()

将字符串所有转换为小写字母

咱们使用id=3的记录来操做。

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

image

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

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

TRIM()

去除字符串两边的空格。

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

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

image

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

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

SUBSTRING()

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

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

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

image

咱们使用id=1记录,截取content字段,而且是从第5个字符串开始截取,因此结果为567890

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

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

image

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

SOUNDEX()

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

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

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

image

观察上面的例子,lie是不等于lee的,可是SOUNDEX(content) = SOUNDEX('lie'),由于lielee的读音十分类似。

相关文章
相关标签/搜索