[英]Find All Tables in a SQL query with a Python Script
另一種說法是“查找字符串中的所有子字符串”; 雖然 stackoverflow 上已經有很多這樣的帖子,但我發現沒有一個能很好地完成工作。
#query variable
query = "select * from table1 a join table2 b on a.id = b.id left join table3 c on b.id = c.id where x = 5;"
query_list = query.split()
#find the adjacent word in a list
def find_adjacents(some_value, some_list):
i = some_list.index(some_value)
return some_list[i:i+2]
print('from tables:', find_adjacents("from", query_list)[1])
print('join tables:', find_adjacents("join", query_list)[1])
>>>from tables: table1
>>>join tables: table2
應該還有一個join tables: table3
。 我如何讓它打印相鄰 substring“加入”的所有實例?
這就是你想要的嗎?
# Query variable
query = "select * from table1 a join table2 b on a.id = b.id left join table3 c on b.id = c.id where x = 5;"
query_list = query.split()
def find_adjacents(some_value, some_list):
val = [index for index, value in enumerate(some_list) if value == some_value]
allVal = []
for x in val:
allVal.append(some_list[x+1])
return allVal
>>> print('from tables:', find_adjacents("from", query_list))
from tables: ['table1']
>>> print('join tables:', find_adjacents("join", query_list))
join tables: ['table2', 'table3']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.