2017-10-12 95 views
0

我有一個Python列表,即:SQL/Python的 - 添加列表(多個條目),以SQL字符串

['E/123', 'E/145'] 

我想要將它添加到SQL語句中,我提出:

WHERE GrantInformation.GrantRefNumber LIKE 'E/123' 
OR GrantInformation.GrantRefNumber LIKE 'E/145' 

我的代碼是:

​​

的問題是,當我插入這個字符串放進我的SQL它是一個字符串,因此正在尋找WHERE GrantInformation.GrantRefNumber Like 'ES/P004355/1 OR GrantInformation.GrantRefNumber LIKE ES/P001452/1'

由於'ES/P004355/1 OR GrantInformation.GrantRefNumber LIKE ES/P001452/1'沒有出現在字段中,所以顯然沒有返回任何內容。

我該怎麼做才能使' GrantInformation.GrantRefNumber LIKE '不是字符串?

謝謝

回答

1

的首選方式做到這一點,就是用像SQLAlchemy一個ORM,這 確實查詢建設爲你和你沒有自己做字符串的濃度。

join(),在數組中的所有項目之間添加字符串,該字符串作爲參數傳遞。您需要將該條件添加到數組中:

>>> items = ['A', 'B'] 
>>> " OR ".join(["GrantInformation.GrantRefNumber LIKE '%s'" % num for num in items]) 
"GrantInformation.GrantRefNumber LIKE 'A' OR GrantInformation.GrantRefNumber LIKE 'B'" 
+0

嘿,Maurice,我將在SQLAlchemy中查看我的下一個項目(謝謝!)。我只是現在測試代碼,雖然將不得不刪除字符串周圍的引號,因爲SQL不會讓他們:) – ScoutEU

+0

嘿,我不知道你知道一種方法來從你的代碼產生的字符串中刪除引號字符串?我試過finalList = refList [1:-1],但只是刪除了第一個和最後一個字符(而不是引號字符串)? – ScoutEU

+0

修正了它。非常感謝你 :) – ScoutEU

相關問題