2017-10-12 96 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

相关问题