MySQL 中擷取欄位中特定位置的值

來源:互聯網
上載者:User

MySQL 中擷取欄位中特定位置的值

MySQL 中擷取查詢欄位中特定位置的值

例如有如下兩條資料:

mysql>  select  from  t; + --------------------------+ name                      | + --------------------------+ | 江蘇 鹽城 大豐區         | | 鹽城 機場代碼(YNZ)       | + --------------------------+

想要擷取到以空格分隔的第三列資料,可以使用substring_index() 函數

mysql>  select  substring_index( name , ' ' ,-1)  as  addr  from  t limit 1; + -----------+ | addr      | + -----------+ | 大豐區    | + -----------+

substring_index(列名,分隔字元,索引),索引指從第幾個字元開始,-表示倒序,第一個位置從1開始,不是0

想要擷取括弧中的資料使用sql語句可以這樣做:

mysql>  select  substring_index(substring_index( name , '(' ,-1), ')' ,1)  as  from  t limit 1,1; + ------+ | a    | + ------+ | YNZ  | + ------+ 

當欄位中值比較複雜時,可以寫指令碼處理,python 庫中有很多處理資料的模組,下面是自己之前寫的指令碼的一部分

import  re import  os   def  main():     """此處將資料庫結果儲存成檔案(由於是異構資料庫,沒有安裝驅動,     如果是mysql資料庫可直接連接資料庫讀資料),欄位以‘,’分隔,也可以使用其他分隔字元"""     with  open ( 'C:/Users/user/Desktop/1.txt' 'r' ) as f:         while  1 # 死迴圈             line  =  f.readline()  # 一次讀一行             if  not  line:  # 沒有資料時退出                 break             server_room, host, wip, lip, server_role_id, raid, cpu, disk, cip, provider, model, mem, os, os_version, tip, port, vip, p_version  =  line.split( ',' )             # 將行分隔成欄位              # port store             try :                 vip  =  re.split( '(|\(|)|\)|\||,' , vip)  # 清洗資料,去除vip欄位中的‘()’,‘|’等符號,產生列表                 while  ''  in  vip:                     vip.remove(' ')  # 移除' '字元                 while  ' '  in  vip:                     vip.remove( ' ' )                     vip_w  =  vip[ 0 # 取出第一條資料,可以進行其他的處理,例如存入檔案,或直接結果存入資料庫              except  Exception as e:                 print ( 'error:' , e)   if  __name__  = =  '__main__' :     main()

��文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.