欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL 字符串截取相關函數小結

 更新時間:2018年04月09日 16:18:06   作者:ShineJaie  
本文是腳本之家小編給大家收藏整理的關于MySQL 字符串截取相關函數小結,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

文中給大家介紹MySQL 字符串截取相關函數,具體內容如下所示:

在工作中,可能需要將某些字段按某個分割符組成一個字符串作為字段值存取到數據庫表中,比如某個任務對應三個結果,分別存儲在不同的數據表中,這時可以將這三個不同表的主鍵按照約定的順序進行組合(主鍵a:主鍵b:主鍵c)。當需要分別去查任務對應類別的詳情信息時,可以截取特定位置的字符串(主鍵b) join 表b進行操作。正好最近也遇到這塊操作,特意將 MySQL 字符串截取的相關函數做一個梳理,以便今后回顧。

一、left(str, len)

返回字符串 str 自左數的 len 個字符。如果任一參數為 NULL,則返回 NULL。

mysql> select left('shinejaie', 5);
+---------------------------------------------------------+
| left('shinejaie', 5)                  |
+---------------------------------------------------------+
| shine                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

二、right(str, len)

返回 str 右邊末 len 位的字符。如果有的參數是 NULL 值,則返回 NULL。

mysql> select right('shinejaie', 4);
+---------------------------------------------------------+
| right('shinejaie', 4)                  |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

三、substring_index(str, delim, count)

返回 str 中第 count 次出現的分隔符 delim 之前的子字符串。如果 count 為正數,將最后一個分隔符左邊(因為是從左數分隔符)的所有內容作為子字符串返回;如果 count 為負值,返回最后一個分隔符右邊(因為是從右數分隔符)的所有內容作為子字符串返回。在尋找分隔符時,函數對大小寫是敏感的。如果在字符串 str 中找不到 delim 參數指定的值,就返回整個字符串。

mysql> select substring_index('home.cnblogs.com', '.', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '.', 2)       |
+---------------------------------------------------------+
| home.cnblogs                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring_index('home.cnblogs.com', '/', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '/', 2)       |
+---------------------------------------------------------+
| home.cnblogs.com                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

四、substring() 與 substr() ---> substring(str, pos)、substring(str from pos)、substring(str, pos, len)、substring(str from pos for len)

在以上4種函數變種形式中,沒有 len 參數的函數形式會返回自 str 中位置 pos 處之后的子字符串;有 len 參數的函數形式會返回自 str 中位置 pos 處之后,長度為 len 的子字符串。使用 FROM 的函數形式則是采用的標準的 SQL 語法。pos 參數也可能取負值,在這種情況下,取字符串的方式是從字符串 str 的末尾向前(而非從前往后),從這種逆向順序的 pos 處開始取字符串。另外,負值的 pos 參數可用于任何形式的 substring() 函數中。

mysql> select substring('shinejaie', 6);
+---------------------------------------------------------+
| substring('shinejaie',6)                |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substr('shinejaie' from 6);
+---------------------------------------------------------+
| substr('shinejaie' from 6)               |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring('shinejaie', -9, 5);
+---------------------------------------------------------+
| substring('shinejaie', -9, 5)              |
+---------------------------------------------------------+
| shine                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

五、trim([{both | leading | trailing} [remstr] form] str)

將字符串 str去除 remstr 所指定的前綴或后綴,返回結果字符串。如果沒有指定標識符both、leading,或trailing,則默認采用 both,即將前后綴都刪除。remstr 其實是個可選參數,如果沒有指定它,則刪除的是空格。

mysql> select trim(' shinejaie  ');
+---------------------------------------------------------+
| trim(' shinejaie  ')                 |
+---------------------------------------------------------+
| shinejaie                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(leading 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(leading 'cn_' from 'cn_shinejaiecn_')       |
+---------------------------------------------------------+
| shinejaiecn_                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(both 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(both 'cn_' from 'cn_shinejaiecn_')         |
+---------------------------------------------------------+
| shinejaie                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(trailing 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(trailing 'cn_' from 'cn_shinejaiecn_')       |
+---------------------------------------------------------+
| cn_shinejaie                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

總結

以上所述是小編給大家介紹的MySQL 字符串截取相關函數小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • MySQL高級篇之索引的數據結構詳解

    MySQL高級篇之索引的數據結構詳解

    在MySQL中索引屬于存儲引擎級別的概念,不同存儲引擎對索引的實現方式是不同的,下面這篇文章主要給大家介紹了關于MySQL高級篇之索引數據結構的相關資料,需要的朋友可以參考下
    2022-05-05
  • win10 安裝mysql 8.0.18-winx64的步驟詳解

    win10 安裝mysql 8.0.18-winx64的步驟詳解

    這篇文章主要介紹了win10 安裝mysql 8.0.18-winx64的步驟,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • MySQL字符集utf8修改為utf8mb4的方法步驟

    MySQL字符集utf8修改為utf8mb4的方法步驟

    這篇文章主要給大家介紹了關于MySQL字符集utf8修改為utf8mb4的方法步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • MySQL 刪除大表的性能問題解決方案

    MySQL 刪除大表的性能問題解決方案

    MySQL在刪除大表engine=innodb(30G+)時,如何減少MySQL hang的時間,本為將提供詳細的解決方案,需要了解的朋友可以參考下
    2012-11-11
  • MySQL中的批量修改、插入操作數據庫

    MySQL中的批量修改、插入操作數據庫

    在平常的項目中,我們會需要批量操作數據庫的時候,例如:批量修改,批量插入,那我們不應該使用 for 循環(huán)去操作數據庫,這樣會導致我們反復與數據庫發(fā)生連接和斷開連接,影響性能和增加操作時間,所以可以使用SQL 批量修改的方式去操作數據庫,感興趣的朋友一起學習下吧
    2023-09-09
  • 淺談MySQL event 計劃任務

    淺談MySQL event 計劃任務

    下面小編就為大家?guī)硪黄獪\談MySQL event 計劃任務。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • MySQL中使用load data命令實現數據導入的方法

    MySQL中使用load data命令實現數據導入的方法

    MySQL支持load data命令的數據導入,該方式比直接的insert的效率要高,按照官方的說法是要比insert語句快上20倍
    2013-10-10
  • mysql Load Data InFile 的用法

    mysql Load Data InFile 的用法

    Load Data InFile是用于批量向數據表中導入記錄。
    2009-05-05
  • 如何在Windows中運行多個MySQL實例詳解

    如何在Windows中運行多個MySQL實例詳解

    這篇文章主要給大家介紹了關于如何在Windows中運行多個MySQL實例的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • mysql 獲取時間方式

    mysql 獲取時間方式

    這篇文章主要介紹了mysql 獲取時間方式,獲取指定時間,獲取當前時間等相關內容,需要的朋友可以參考一下,希望對你有所幫助
    2022-03-03

最新評論