成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

xuxueli / 1292人閱讀

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

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

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

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

函數(shù)

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

文本處理函數(shù)

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

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

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

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

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

準(zhǔn)備

首先我們先建立一個數(shù)據(jù)表,同時填入一些數(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ù)有兩個參數(shù),第一個參數(shù)為字符串,第二個參數(shù)為字符串長度。字符串長度為2,就從字符串的左側(cè)截取兩個字符串返回。

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

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

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

LENGTH()

這個函數(shù)很簡單,返回字符串的長度。

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

我們返回了id=1的記錄的content長度為10

LOCATE()

返回一個字符串在另一個字符串中第一次出現(xiàn)的位置,如果沒有發(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的記錄來操作。

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

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

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

TRIM()

去除字符串兩邊的空格。

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

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

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

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

SUBSTRING()

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

1、從第N個字符串開始截取

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

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

2、從第N個字符串開始截取,截取M個字符

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

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

SOUNDEX()

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

我們拿上面的id=5的記錄來舉個例子,記錄的content值為lee,但是有個方言用戶輸入了lie,無論是模糊查詢還是精確查詢都是無法匹配到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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22891.html

相關(guān)文章

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

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

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

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

    xbynet 評論0 收藏0

發(fā)表評論

0條評論

xuxueli

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<