在带有单引号的集合值中插入Cassandra
有没有办法在Cassandra集合中插入带有单引号的值?这就是我所拥有的: 表:在带有单引号的集合值中插入Cassandra,cassandra,cql,nosql,Cassandra,Cql,Nosql,有没有办法在Cassandra集合中插入带有单引号的值?这就是我所拥有的: 表: CREATE TABLE test.test ( name text PRIMARY KEY, values map<text, text> ) 查询: SELECT * FROM test; 如您所见,Cassandra替换了简单“name”字段中的双引号,但没有替换映射内字段中的引号。我想要的结果是: name | values ---------+------------
CREATE TABLE test.test (
name text PRIMARY KEY,
values map<text, text>
)
查询:
SELECT * FROM test;
如您所见,Cassandra替换了简单“name”字段中的双引号,但没有替换映射内字段中的引号。我想要的结果是:
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy's house'}
我不知道有什么办法。你正在尝试做的事情看起来应该奏效。可能有人忘记检查集合字符串中的转义字符。如果没有人给出答案,您可能需要为此输入一张罚单,以便进行调查
一个解决办法是将select作为JSON
cqlsh:gii> insert into test (name,values) values ('Tu''pac',{'fo''o':'josemy''s house'});
cqlsh:gii> select * from test;
name | values
---------+------------------------------
Tu'pac | {'fo''o': 'josemy''s house'}
cqlsh:gii> select json * from test;
[json]
----------------------------------------------------------
{"name": "Tu'pac", "values": {"fo'o": "josemy's house"}}
我是afk,但你试过使用“乔塞米的房子”吗?是的,但失败了。文档中说,单引号是用另一个单引号转义的。如果有人在意,OP创建的jira:
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy's house'}
cqlsh:gii> insert into test (name,values) values ('Tu''pac',{'fo''o':'josemy''s house'});
cqlsh:gii> select * from test;
name | values
---------+------------------------------
Tu'pac | {'fo''o': 'josemy''s house'}
cqlsh:gii> select json * from test;
[json]
----------------------------------------------------------
{"name": "Tu'pac", "values": {"fo'o": "josemy's house"}}