作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Pyscopg2,我如何将 Python 列表传递到 SQL 语句中 using the ANY Operator ?
正常工作的 SQL 读取 ( See SQL Fiddle ):
SELECT * FROM student WHERE id NOT IN (3);
如下使用 Psycopg2:
Psycopg2:查询 1
下面的查询因 psycopg2.ProgrammingError: syntax error at or near "ANY"
而失败
id_list = [2,3,4]
cursor.execute("SELECT * FROM student WHERE id NOT IN ANY(%s)) %(id_list);
Psycopg2:查询 2
下面的查询没有抛出错误,但给出了错误的结果,因为它没有排除列表中的 ID。它的行为就好像它是一个 Equal To 运算符,或者具体地说就像它的一个 IN
语句,而我想要一个 NOT IN
id_list = [2,3,4]
cursor.execute("SELECT * FROM student WHERE id != ANY(%s)), (id_list,);
此外,在我的搜索中我遇到了 pyscopg2 extension SQL_IN .在这种情况下可以使用吗?如果可以,我该如何使用它?
最佳答案
当你做的时候
select 2 != any(array[2,3,4]);
?column?
----------
t
2
将与所有数组项进行比较,如果有任何项 2
不相等,它将评估为 true
。
使用 not id = any(array[2,3,4])
select not 1 = any(array[2,3,4]);
?column?
----------
t
select not 2 = any(array[2,3,4]);
?column?
----------
f
或者!= all
select 1 != all(array[2,3,4]);
?column?
----------
t
select 2 != all(array[2,3,4]);
?column?
----------
f
关于python - 如何在 NOT IN 语句中使用 Postgresql ANY 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966322/
我是一名优秀的程序员,十分优秀!