mysqlでフィールド内の特定の位置の値を取得する
mysqlでフィールド内の特定の位置の値を取得する
たとえば、次の2つのデータがあります.
スペースで区切られた3番目の列のデータを取得するにはsubstring_を使用します.index()関数
substring_index(カラム名、セパレータ、インデックス)、インデックスは数番目の文字から始まります.-逆順を表し、最初の位置は1から始まり、0ではありません.
カッコ内のデータを取得するには、sql文を使用します.
フィールドの値が複雑な場合は、スクリプト処理を書くことができます.pythonライブラリには、データを処理するモジュールがたくさんあります.以下は、自分が前に書いたスクリプトの一部です.
たとえば、次の2つのデータがあります.
mysql> select * from t;
+--------------------------+
| name |
+--------------------------+
| |
| (YNZ) |
+--------------------------+
スペースで区切られた3番目の列のデータを取得するには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()