如何确定表中是否存在记录?我尝试的方法是执行unsigned int
查询,然后使用以下内容计算SELECT
的行:
ResultSet
但是,rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>]))
if len(rows) == 0:
print "Does not exist"
不支持ResultSet
。在另一个答案中,他们建议使用len
,强烈建议不要在另一个参考文献中使用SELECT COUNT(*)
。有更标准的方法吗?
答案 0 :(得分:5)
您只需执行以下操作之一:
rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>]))
if not rows:
print "Does not exist"
或者,如果选择多行,您可以使用以下内容迭代ResultSet:
for row in rows:
do_something(row)
ResultSet还有一个current_rows属性,如果没有返回,则该属性为空。
有关如何使用ResultSet的详细信息,请参阅http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.ResultSet。
答案 1 :(得分:0)
Cassandra session.execute
返回包含ResultSet
属性的current_rows
对象。
尝试以下操作:
r = session.execute(f"SELECT * FROM test_table WHERE id = {some_id} limit 1")
if(len(r.current_rows) == 0):
# your code here