我正在使用 PostgreSQL 創建復雜的動態查詢。在我的查詢中,我可以在查詢的多個位置多次使用一個變數,為了簡化事情,我想知道我是否可以做這樣的事情:
SELECT * FROM employees Where name = $1 and id = $2 and manager_id = $2;
然后像這樣執行查詢:
EXECUTE format ('SELECT * FROM employees Where name = $1 and id = $2 and manager_id = $2;') using (var_name, var_id);
uj5u.com熱心網友回復:
引數是位置引數,因此$1無論您在何處以及多久參考它,始終參考第一個引數。
但是您不能將引數括在括號中,因為這會創建匿名記錄。using (var_name, var_id)傳遞一個引數(這是一個有兩個欄位的記錄)。
所以你可以使用:
EXECUTE format('SELECT * FROM employees Where name = $1 and id = $2 and manager_id = $2')
using var_name, var_id;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476020.html
標籤:PostgreSQL plpgsql 动态 sql
上一篇:在JSONB中添加布爾欄位
