文中給大家介紹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)
新聞熱點
疑難解答