簡體   English   中英

使用 Python 腳本在 SQL 查詢中查找所有表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM