我想给这个WHERE
子句添加另一个条件:
stmt = 'SELECT account_id FROM asmithe.data_hash WHERE percent < {};'.format(threshold)
我有一个变量juris
,它是一个列表。account_id
和{account_id
时,它包含juris
的子字符串。在
我想向查询添加一个条件,它需要匹配juris
元素中的任何一个。通常我只添加...AND account_id LIKE '{}%'".format(juris)
,但这不起作用,因为{
如何将列表的所有元素添加到WHERE
子句中?在
Stop using string formatting with SQL. Right now。明白吗?在
好了。SQL中有一个构造
ANY
,它允许您获取一个运算符并将其应用于数组。psycopg2
支持将Python列表作为SQLARRAY[]
传递。所以在这种情况下你可以注意,
%s
是psycopg2查询参数占位符。它实际上不是一个格式说明符。第二个参数是元组,即查询参数。第一个(也是唯一的)参数是列表。在还有一个
ALL
,它的工作原理与ANY
相似,但只有当所有匹配项都为真时才为真,而不仅仅是当一个或多个匹配为真时。在我希望juris是一个字符串列表?如果是这样,这可能会有帮助:
查看以下链接:
python list in sql query as parameter
How to select item matching Only IN List in sql server
String formatting operations
将
Regex
与运算符~
一起使用:这将导致以下查询:
^{pr2}$这将使它们的
id
以开头的任何2、7、8或3行。这是它的fiddle。在如果希望
id
以2783
开头,请使用:如果
id
包含2、7、8或3中的任何一个相关问题 更多 >
编程相关推荐