0
我正在使用Flask-SQLAlchemy,並且我在SQL語法中的IN子句中遇到了一些問題。我想讓我的IN子句「讀取」的數據是包含一些數據的列表,例如SQLAlchemy和RAW SQL:列表作爲輸入
args = [1, 2, 3]
這裏是我的代碼的樣子。
connection = db.session.connection()
raw_sql = text("""
SELECT
*
FROM
table
WHERE data IN :list
""")
query = connection.engine.execute(raw_sql, {'list' : args})
我已經嘗試給元組和列表插入參數,但沒有任何工作。我要麼獲得:
- 使用
args = [1, 2, 3]
當Python的元組'不能轉換到MySQL類型與args = tuple([1, 2, 3])
您好@Jivan,感謝您的回答,但恐怕它轉換爲字符串將無法正常工作。我得到MySQL錯誤代碼:'1064'。即使我在MySQL Workbench中嘗試SQL語法。我收到了同樣的錯誤。它不允許我寫IN'「(1,2,3)」'或IN''(1,2,3)'',如果我刪除了str方法,我仍然得到相同的錯誤! _it我也在MySQL Workbench中強調「」是一個SQL語法錯誤_ – Sigils
@Sigils好的,我找到了另一種方法。剛編輯我的答案反映了這一點。 – Jivan
我很抱歉,但沒有工作。我很高興你花時間去幫助我。但是我現在得到的錯誤是'AttributeError:'list'對象沒有屬性'keys''。如果這很重要,我正在使用python 3.4嗎?是的,我確實寫了你如何做!也許我應該使用ORM而不是RAW SQL編寫它? – Sigils