cassandra 美元引号字符串中的转义美元符号查询

ifmq2ha2  于 4个月前  发布在  Cassandra
关注(0)|答案(1)|浏览(55)

你好,我试图在一个Cassandra查询,其中有一个数据类型文本的解释字段工作。我使用dollar-quoted strings转义特殊字符,但我面临的问题时,我的解释字段的字符串以美元符号结束
例如

INSERT INTO Users (name, explanation) VALUES ($$Tom$$, $$Some'text$$$);

字符串
最后两个用美元引起来的字符串是结束引号,但倒数第三个是解释的一部分,我怎么才能转义它呢?或者有没有其他方法可以转义所有特殊字符,包括美元符号?
Thanks in advance

mfpqipee

mfpqipee1#

从语法上看,词法分析器似乎只是搜索到$$的下一个出现,并不区分两个和三个美元符号。但是如果你在$之后有任何字符,那么它就被正确处理了。(例如,字符串$$dwewdewe'adqdq$'$$工作正常)-它只是不应该是结束$$之前的最后一个字符。如果你想插入字符串中的'字符,你可以用另一个'字符来转义(参见doc)它(例如; 'this is string with '' inside'-它工作得很好,并且会像预期的那样产生this is string with ' inside)。
这是关于一次插入语句。但是如果你从程序中插入数据,那么最好使用prepared statements-它们应该在所有现有的驱动程序中得到支持。当你使用准备好的语句时,你不需要关心转义-这是驱动程序的工作(实际上,没有转义发生,因为字符串是按原样发送的,而不是作为语句的一部分发送的)。除了不需要转义之外,你还应该获得更好的性能,因为语句的解析只发生一次,当它准备好时,然后只有语句ID加上参数被发送到Cassandra节点。

相关问题