新聞中心
MySQL 中獲取字段中特定位置的值
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的麟游網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
例如有如下兩條數(shù)據(jù):
mysql> select * from t; +--------------------------+ | name | +--------------------------+ | 江蘇 鹽城 大豐區(qū) | | 鹽城 機(jī)場(chǎng)代碼(YNZ) | +--------------------------+
想要獲取到以空格分隔的第三列數(shù)據(jù),可以使用substring_index() 函數(shù)
mysql> select substring_index(name,' ',-1) as addr from t limit 1; +-----------+ | addr | +-----------+ | 大豐區(qū) | +-----------+
substring_index(列名,分隔符,索引),索引指從第幾個(gè)字符開(kāi)始,-表示倒序,第一個(gè)位置從1開(kāi)始,不是0
想要獲取括號(hào)中的數(shù)據(jù)使用sql語(yǔ)句可以這樣做:
mysql> select substring_index(substring_index(name,'(',-1),')',1) as a from t limit 1,1; +------+ | a | +------+ | YNZ | +------+
當(dāng)字段中值比較復(fù)雜時(shí),可以寫腳本處理,python 庫(kù)中有很多處理數(shù)據(jù)的模塊,下面是自己之前寫的腳本的一部分
import re import os def main(): """此處將數(shù)據(jù)庫(kù)結(jié)果存儲(chǔ)成文件(由于是異構(gòu)數(shù)據(jù)庫(kù),沒(méi)有安裝驅(qū)動(dòng), 如果是mysql數(shù)據(jù)庫(kù)可直接連接數(shù)據(jù)庫(kù)讀數(shù)據(jù)),字段以‘,’分隔,也可以使用其他分隔符""" with open('C:/Users/user/Desktop/1.txt', 'r') as f: while 1: # 死循環(huán) line = f.readline() # 一次讀一行 if not line: # 沒(méi)有數(shù)據(jù)時(shí)退出 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) # 清洗數(shù)據(jù),去除vip字段中的‘()’,‘|’等符號(hào),生成列表 while '' in vip: vip.remove('') # 移除''字符 while ' ' in vip: vip.remove(' ') vip_w = vip[0] # 取出第一條數(shù)據(jù),可以進(jìn)行其他的處理,例如存入文件,或直接結(jié)果存入數(shù)據(jù)庫(kù) except Exception as e: print('error:', e) if __name__ == '__main__': main()
網(wǎng)頁(yè)題目:mysql中獲取字段中特定位置的值
路徑分享:http://www.ef60e0e.cn/article/gpdeid.html