在Python 2.7中使用CQL 1.4.0查询空字符串
我在查询一个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作为名字或姓氏。当然,简单的空格也可以用。