Postgresql
將 python 列表傳遞給 plpy 執行 in 運算符,無需字元串插值
我有一個 ‘in’ where 子句的 plpython 查詢
user_ids = [1,2,3] query = "SELECT department from users where id in ($1)" prepared_query = plpy.prepare(query, ['bigint']) # not sure what the type should be if id is bigint plpy.execute(prepared_query, user_ids)
問題是我不確定參數類型應該是什麼
我嘗試過的不同組合出現錯誤:
- 使用上述語法時,由於列表中的逗號而引發錯誤
- 使用 bigint 時$$ $$我得到了 no 運算符 bigint = bigint$$ $$.
- 我嘗試使用 “,",join() 傳入逗號分隔的字元串
- 我也將列表轉換為元組,但這不起作用
有沒有人讓這個工作?它的記錄很差。
如果其他人有這個問題,我設法通過將 where 子句切換到
where id = ANY($1)
並bigint[]
用作參數類型來解決這個問題