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 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()

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:mysql中获取字段中特定位置的值-创新互联
分享路径:http://myzitong.com/article/dsogch.html