我的意思是:
SELECT * FROM my_tab WHERE col1 = 'name1' AND col2 in(1,2,3);
如何獲得:
SELECT * FROM my_tab WHERE col1 = ? AND col2 in(?,?,?);
pg_stat_statements做類似但它不保存原始(帶引數)陳述句。我也需要原始查詢。
可能有一些開源或正則運算式,這是做什么的?
uj5u.com熱心網友回復:
如果您可以訪問 Python,您可以嘗試:
sql = "SELECT * FROM my_tab WHERE col1 = 'name1' AND col2 IN (1,2,3);"
output = re.sub(r'\bIN\s*\((.*?)\)', lambda m: 'IN (' re.sub(r'\w ', '?', m.group(1)) ')', sql)
print(output)
這列印:
SELECT * FROM my_tab WHERE col1 = 'name1' AND col2 IN (?,?,?);
uj5u.com熱心網友回復:
您也許可以針對特定查詢執行此操作,但此問題的通用解決方案需要決議 SQL 陳述句,這至少可以說很復雜。
嘗試為您的問題背后的問題找到不同的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314422.html
標籤:sql PostgreSQL 解析
上一篇:元資料類組態檔決議器
