检查PostgreSQL表列的值并返回boolean

时间:2017-02-01 21:52:03

标签: python mysql postgresql

我只是在学习SQL而且如果这是重复的话道歉,但我已经搜索过但没有找到答案。使用PostgreSQL DB在python中编写。

我想检查一下我的数据库中的表,看看" Port"列包含特定位置。我可以交互式地执行此操作,但它返回表结果,例如:

select exists(select 1 from ref_locations where "Port"='ORAN');

它返回:

exists
-------
t
(1 row)

...我希望它返回一个布尔值,我想在我的python脚本中执行它。在我的python脚本中,我有:

exists = False
cnx.execute("""select exists(select 1 from ref_locations where "Port"='BAKU');""")
print "Exists: ",exists

但是存在总是填充False。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

你的postgresql语句不是问题,虽然你可能会稍微缩短一点:

select exists(select from ref_locations where Port='ORAN');

您遇到的问题是执行语句的结果未分配给任何内容。

考虑尝试这个(在执行语句之后):

exists = cnx.fetchone()

或只是

print cnx.fetchone()

答案 1 :(得分:0)

存在许多变体,但最简单的是:

select count(*) > 0 from ref_locations where "Port"='ORAN'