我必须通过datastax在cassandara db中将几个值添加为货币,其中一个值为$。但这是失败的。
INSERT INTO concept_value_set (concept_name,value_set)
VALUES ('@CurrencyType',{'Dollar', 'Usd', 'Euro',
'Pound', 'Frank', 'Renminbi', '$'});
这会导致系统出现问题。
我尝试使用来逃避$
INSERT INTO concept_value_set (concept_name,value_set)
VALUES ('@CurrencyType',{'Dollar', 'Usd', 'Euro',
'Pound', 'Frank', 'Renminbi', '$$'});
但它也失败。
这里是否有逃脱$
的方法。我找不到任何适当的链接。
答案 0 :(得分:2)
我认为美元符号不是您的问题。我认为这是JSON值使用单引号的方式。重建表(基于提供的信息),我想出了以下结构:
CREATE TABLE concept_value_set (
concept_name TEXT PRIMARY KEY,
value_set TEXT);
我能够使它起作用:
cassdba@cqlsh:stackoverflow> INSERT INTO concept_value_set JSON '{
"\"concept_name\"":"@CurrencyType",
"\"value_set\"":"Dollar, Usd, Euro, Pound, Frank, Renminbi, $"}';
现在,我可以在表中查询TEXT:
cassdba@cqlsh:stackoverflow> SELECT * FROM concept_value_set
WHERE concept_name='@CurrencyType';
concept_name | value_set
---------------+----------------------------------------------
@CurrencyType | Dollar, Usd, Euro, Pound, Frank, Renminbi, $
(1 rows)
还可以查询表以获取JSON,如下所示:
cassdba@cqlsh:stackoverflow> SELECT JSON value_set FROM concept_value_set
WHERE concept_name='@CurrencyType';
[json]
---------------------------------------------------------------
{"value_set": "Dollar, Usd, Euro, Pound, Frank, Renminbi, $"}
(1 rows)
您可以在主Apache Cassandra project documentation site以及DataStax的文档站点(INSERT JSON,QUERY JSON)上找到有关在Cassandra中使用JSON的更多信息。
希望这会有所帮助。