MySQL 欄位擷取拼接

南国以南i發表於2024-05-21

@

目錄
  • 前言
    • 需求:
    • 拼接函式:
    • 擷取函式:
  • 總結


前言

請各大網友尊重本人原創知識分享,謹記本人部落格:南國以南i


提示:以下是本篇文章正文內容,下面案例可供參考

需求:

將資料庫中的某一個欄位的前6位替換成一個新的字串,其它位置不變。

拼接函式:

CONCAT(A,B):將A和B拼接起來。

擷取函式:

LEFT(str,3):擷取str的前3位;

select left('sqlstudy.com', 3);
結果:| sql |

RIGHT(str,3):擷取str的後3位;

select right('sqlstudy.com', 3);
結果 : | com |

字串擷取:substring(str, pos); substring(str, pos, len)

substring(str,4):從str的第4個字元位置開始擷取,一直到結束。

select substring('sqlstudy.com', 4);
結果: | study.com |

substring(str,4,2):從str的第4個字元位置開始擷取,只取兩個字元。

select substring('sqlstudy.com', 4, 2);
結果 : | st |

substring(str,-4):從str倒數的第4個字元位置開始擷取,一直到結束。

select substring('sqlstudy.com', -4);
結果 : | .com |

substring(str,-4,2):從str倒數的第4個字元位置開始擷取,只取兩個字元。

select substring('sqlstudy.com', -4, 2);
結果 : | .c |

PS:字串擷取長度不可以為負值。
字串擷取:substring_index(str,delim,count)

擷取第二個 ‘.’ 之前的所有字元。

select substring_index('www.sqlstudy.com.cn', '.', 2);
結果: | www.sqlstudy |

擷取第二個 ‘.’ (倒數)之後的所有字元。

 select substring_index('www.sqlstudy.com.cn', '.', -2);
結果: | com.cn |

如果在字串中找不到 delim 引數指定的值,就返回整個字串

 select substring_index('www.sqlstudy.com.cn', '.coc', 1);
結果: | www.sqlstudy.com.cn |

應用:
將資料庫中的某一個欄位的前6位替換成一個新的字串,其它位置不變。

UPDATE `aa10` SET AAA102 = CONCAT("111111",substring(AAA102,7,6)) WHERE AAA102 like '111222%';

修改欄位,字串+擷取最後一位/

#transfer_url:http://file/9ce2b963a6864927a49846fbe5c0cac6.amr
#拼接內容:/home/admin/sca/ccrecord/9ce2b963a6864927a49846fbe5c0cac6.amr

UPDATE  messages_transfer set down_file_path=CONCAT("/home/admin/sca/ccrecord/",substring_index(transfer_url, '/', -1))

總結

我是南國以南i記錄點滴每天成長一點點,學習是永無止境的!轉載請附原文連結!!!

參考連結

相關文章