您好,登錄后才能下訂單哦!
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 a 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()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。