【发布时间】:2018-09-15 09:06:29
【问题描述】:
如何在 Cassandra 中获取字符串的长度?似乎没有任何内置函数可以为我执行此操作。
寻找这样的东西:
SELECT size(myStr) FROM myTable WHERE ...
我知道这可以使用用户定义的函数来实现,但我不确定我是否拥有能够创建函数的适当权限。
【问题讨论】:
标签: cassandra cql string-length
如何在 Cassandra 中获取字符串的长度?似乎没有任何内置函数可以为我执行此操作。
寻找这样的东西:
SELECT size(myStr) FROM myTable WHERE ...
我知道这可以使用用户定义的函数来实现,但我不确定我是否拥有能够创建函数的适当权限。
【问题讨论】:
标签: cassandra cql string-length
它没有内置函数,但您可以在 Cassandra 中创建 UDF 以查找 String 列的长度,然后在查询中使用该 UDF。在创建此 UDF 之前,请确保您已在 cassandra.yml 文件中启用 udf 属性,即 enable_user_defined_functions: true
CREATE FUNCTION IF NOT EXISTS len (input text)
CALLED ON NULL INPUT
RETURNS int
LANGUAGE java AS '
return input.length();';
然后你可以在你的查询中使用它,
cqlsh:test> SELECT len(event_data) as length from event where id = 1;
你应该得到输出,
length
--------
14
【讨论】:
可以制作一个 UDF 来执行此操作,但 cassandra 中没有内置。
【讨论】: