首页 > 解决方案 > 我想从列表中选择我的 id 符合条件的表

问题描述

我有一个列表,我想从我的 postgresql 表数据中选择条件满足我列表中的数据的地方。

我环顾四周,我看到了解决方案,但它对我不起作用。我也尝试INLIKE, 和IN with ANY(%s)

EnviromentalList = [59, 66, 67, 79, 144, 275, 276, 3096, 3097, 356, 376, 509, 548, 589, 871, 872, 888, 889, 890, 891, 901, 919, 960, 998, 221, 223, 224, 225, 226]

cur.execute("SELECT event_id, event_time FROM availabilitycalculation.machine_events WHERE event_id IN %s ;", (EnviromentalList,))

ErrorList = cur.fetchall()

我得到:

psycopg2.ProgrammingError:“ARRAY”第 1 行附近的语法错误:...ilitycalculation.machine_events WHERE event_id IN ARRAY[59,6...

标签: python-3.xpostgresql

解决方案


要在 SQL 中选择满足条件的行,您对运算符的使用将取决于您尝试提取的信息,在这方面,从数据库中获取更多详细信息将有助于确定您想要完成的具体内容。

喜欢

在此特定示例中,您似乎希望使用运算符来选择以字母sLIKE结尾的事件 ID 的所有实例。例如,假设我有一个特定国家/地区的数据库,并希望选择以d结尾的国家/地区。

select country from table where country like '%d';
   country   
-------------
 Ireland
 Finland
 Switzerland
(3 rows)

任何

现在,让我们以ANY. 当我们希望选择任何满足指定条件的条目时使用它。回到上面的例子,假设我们正在使用一个假设的人口表,并且某些国家的人口比其他国家多。

我们希望选择任何人口超过 1000 万的国家。

select country from table where country = any (select country from table where population>10000000);

   country   
-------------
 South Korea
 Brazil
 Spain
 Italy
 United Kingdom
(5 rows)

这是如何使用LIKEAND可以使用的两个示例,对于您的情况,您应该考虑您尝试使用每个运算符提取的特定信息。


推荐阅读