有没有办法在Cassandra的集合中插入一个带单引号的值?这就是我所拥有的:
表:
CREATE TABLE test.test (
name text PRIMARY KEY,
values map<text, text>
)
插入:
INSERT INTO test (name, values) VALUES ( 'jos''emy',{'foo':'josemy''s house'});
查询:
SELECT * FROM test;
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy''s house'}
正如你所看到的,Cassandra取代了简单&#34;名称&#34;中的双引号。字段,但不替换地图内字段中的引号。我想要的结果是:
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy's house'}
答案 0 :(得分:0)
我不知道某种方式。你想做什么看起来应该有用。可能有人忘记检查集合字符串中的转义字符。如果没有人提出答案,您可能想要为此输入票证,以便可以查看。
答案 1 :(得分:0)
解决方法是选择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"}}