我只是在学习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。非常感谢任何帮助。
答案 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'