亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

MySQL必知必會(huì)(6):常用文本字符串處理函數(shù)

xuxueli / 1346人閱讀

摘要:編程語(yǔ)言中經(jīng)常使用函數(shù)來(lái)處理一些字符串,數(shù)字或者其他內(nèi)容。所以如果需要移植要慎重使用函數(shù)。該函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為字符串,第二個(gè)參數(shù)為字符串長(zhǎng)度。還有另外兩個(gè)相似函數(shù)去除字符串左側(cè)空格去除字符串右側(cè)空格字符串截取函數(shù)。

編程語(yǔ)言中經(jīng)常使用函數(shù)來(lái)處理一些字符串,數(shù)字或者其他內(nèi)容。MySQL也是一樣,可以使用函數(shù)來(lái)快速達(dá)到一系列的目的。

在上一篇文章《計(jì)算字段的使用》中,我們提前使用了一個(gè)trim函數(shù),來(lái)處理字符串兩端的空格。而這篇文章就是專門講解一些實(shí)際工作中常用函數(shù)。

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

函數(shù)

MySQL支持以下常用函數(shù):

文本處理函數(shù)

數(shù)值數(shù)據(jù)處理函數(shù)

日期時(shí)間處理函數(shù)

MySQL一些特殊信息,比如版本信息函數(shù)

本篇文章主要介紹:文本處理函數(shù),一般用于處理字符串,比如刪除、填充、轉(zhuǎn)換大小寫等等操作

提示: SQL語(yǔ)句具有較強(qiáng)的可移植性。比如在Mysql中使用的SQL語(yǔ)句,搬到postgresql中使用起來(lái)問(wèn)題也不大。但是,在SQL語(yǔ)句中使用的函數(shù)可移植性較差,實(shí)現(xiàn)相同功能的函數(shù)在不同DBMS中可能完全不一樣。所以如果需要移植SQL要慎重使用函數(shù)。

準(zhǔn)備

首先我們先建立一個(gè)數(shù)據(jù)表,同時(shí)填入一些數(shù)據(jù),下面我們將使用此表

-- ----------------------------
-- 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字符串處理函數(shù),及其用法實(shí)例

LEFT()

用于返回字符串左側(cè)的字符。

該函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為字符串,第二個(gè)參數(shù)為字符串長(zhǎng)度。字符串長(zhǎng)度為2,就從字符串的左側(cè)截取兩個(gè)字符串返回。

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

我們從上表中返回了id=1的記錄的content字段的左側(cè)3個(gè)字符

TIP: 該函數(shù)還有相似函數(shù)RIGHT()用于返回字符串右側(cè)的字符,用法類似。

LENGTH()

這個(gè)函數(shù)很簡(jiǎn)單,返回字符串的長(zhǎng)度。

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

我們返回了id=1的記錄的content長(zhǎng)度為10

LOCATE()

返回一個(gè)字符串在另一個(gè)字符串中第一次出現(xiàn)的位置,如果沒(méi)有發(fā)現(xiàn)就返回0.

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

之前id=1content字段內(nèi)容為1234567890,234的起始位置為2. 所以,如果在開始位置查找到,那么返回是1而不是0

LOWER()

將字符串全部轉(zhuǎn)換為小寫字母

我們使用id=3的記錄來(lái)操作。

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

可以看到,之前的大寫ABC被轉(zhuǎn)換成了小寫的字母abc

TIP: 該函數(shù)還有一個(gè)相反函數(shù)UPPER()可以將小寫字母均轉(zhuǎn)換為大寫字母

TRIM()

去除字符串兩邊的空格。

這次使用id=4的記錄作為演示,content字段兩邊包含了空格。

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

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

TIP: 還有另外兩個(gè)相似函數(shù):1、LTRIM():去除字符串左側(cè)空格;2、RTRIM()去除字符串右側(cè)空格

SUBSTRING()

字符串截取函數(shù)。該函數(shù)與LEFT()RIGHT()函數(shù)有點(diǎn)兒類似,都可以截取字符串,只不過(guò)功能更加強(qiáng)大。

1、從第N個(gè)字符串開始截取

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

我們使用id=1記錄,截取content字段,并且是從第5個(gè)字符串開始截取,所以結(jié)果為567890

2、從第N個(gè)字符串開始截取,截取M個(gè)字符

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

這個(gè)方法去截取字符串是不是有更多的自由

SOUNDEX()

最后說(shuō)一個(gè)不同于之前的字符處理函數(shù)SOUNDEX(),這個(gè)函數(shù)可以將一個(gè)單詞的讀音轉(zhuǎn)換成與它相似的讀音的單詞。簡(jiǎn)單的來(lái)說(shuō),就是講方言轉(zhuǎn)換為普通話的意思。這個(gè)在搜索中十分的好使。

我們拿上面的id=5的記錄來(lái)舉個(gè)例子,記錄的content值為lee,但是有個(gè)方言用戶輸入了lie,無(wú)論是模糊查詢還是精確查詢都是無(wú)法匹配到lee結(jié)果,但是使用了soundex函數(shù)則可以改變這些。

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

觀察上面的例子,lie是不等于lee的,但是SOUNDEX(content) = SOUNDEX("lie"),因?yàn)?b>lie和lee的讀音十分相似。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/22891.html

相關(guān)文章

  • Mysql必知必會(huì)(5):計(jì)算字段的使用

    摘要:計(jì)算字段是在檢索過(guò)程中建立的虛擬字段,他們并不實(shí)際存在于數(shù)據(jù)庫(kù)中。計(jì)算字段和程序處理之間關(guān)系數(shù)據(jù)庫(kù)這種臨時(shí)處理數(shù)據(jù),格式化輸出的結(jié)果,都可以使用編程語(yǔ)言來(lái)實(shí)現(xiàn)。之間多個(gè)值使用逗號(hào)分割。過(guò)濾字段上面使用來(lái)組合字段。 本文主要介紹Mysql中計(jì)算字段的使用方法 我博客文章地址:http://weiya.me/item/60.html 簡(jiǎn)介 在創(chuàng)建數(shù)據(jù)庫(kù)表的時(shí)候,往往為了數(shù)據(jù)庫(kù)的各種性能,我...

    高璐 評(píng)論0 收藏0
  • 前端必知必會(huì)HTTP請(qǐng)求系列(二)簡(jiǎn)單一點(diǎn)的HTTP協(xié)議

    摘要:通過(guò)請(qǐng)求和響應(yīng)的交換達(dá)成通信協(xié)議中已經(jīng)規(guī)定了請(qǐng)求是從客戶端發(fā)出,最后由服務(wù)端響應(yīng)這個(gè)請(qǐng)求并返回。隨后的字符串指明了請(qǐng)求訪問(wèn)的資源對(duì)象。協(xié)議自身不對(duì)請(qǐng)求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存,也就是說(shuō)這個(gè)級(jí)別。從前發(fā)送請(qǐng)求后需等待并受到響應(yīng)。 showImg(https://segmentfault.com/img/bVbmDsG?w=1024&h=538); http協(xié)議用戶客戶端和服務(wù)器之間的...

    xbynet 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<