在Python 2.7中使用CQL 1.4.0查询空字符串

2 投票
1 回答
609 浏览
提问于 2025-04-18 06:19

我在查询一个Cassandra 1.2表格时,想找出某一列中为空字符串的记录,但遇到了一个错误:

cql.apivalues.ProgrammingError: Bad Request: Key may not be empty


背景:

我发送的CQL语句使用了游标,目的是获取所有first_name列为空字符串的行。发给游标的cql_query文本是:

SELECT obj_key 
     FROM person_first_name_last_name
     WHERE first_name = :first_name_0 AND last_name = :last_name_1
     LIMIT 50

参数如下:

{'first_name_0': '', 'last_name_1': 'd'}


根据我的理解,这应该是可以实现的。然而,这个错误似乎表明空字符串不是一个有效的搜索值。我该怎么做才能解决这个问题呢?

非常感谢!

1 个回答

1

据我所知,当某一列是主键或者是复合主键的一部分时,这列的值不能是空的(至少在CQL中是这样)。

解决这个问题的方法是给这列设置一个在你的数据中不存在的值。在你的例子中,使用'zx123'就可以了,因为没有人会用zx123作为名字或姓氏。当然,简单的空格也可以用。

撰写回答