首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cqlsh -e执行问题的cqlsh

使用cqlsh -e执行问题的cqlsh
EN

Stack Overflow用户
提问于 2017-05-17 02:35:52
回答 1查看 378关注 0票数 1

我很难用-e选项执行列名在引号中的情况。

我想使用unix级别执行如下所示的内容。试图从shell脚本中运行。当我试图将我的值放在引号中时,它会删除我的专栏的引号。

代码语言:javascript
复制
select * from keyspace.cf where "columnname"=''

试过这个:

代码语言:javascript
复制
cqlsh hostname -e "select * from keyspace.cf where "columnname"=''"

它作为cqlsh主机名-e 'select * from keyspace.cf where columnname=‘执行。

代码语言:javascript
复制
stdin>:1:InvalidRequest: Error from server: code=2200 [Invalid query] message="Undefined name columnaname in where clause ('columnname= 'value'')"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 13:49:01

您不需要在columnname周围加上引号,只需要设置它并在其前缀加上一个$。

代码语言:javascript
复制
cqlsh -u cassandra -p cassandra -e "SELECT $COLUMN FROm $KEYSPACE.$TABLE;"

这是我写的一个名为getVersion.sh的脚本的摘录。

代码语言:javascript
复制
#!/bin/bash

KEYSPACE="system"
TABLE="local"
COLUMN="release_version"

~/local/apache-cassandra-3.10/bin/cqlsh -u cassandra -p cassandra -e "SELECT $COLUMN FROm $KEYSPACE.$TABLE;"

aploetz@dockingBay94:~/scripts$ ./getVersion.sh 

 release_version
-----------------
            3.10

(1 rows)

如果您的列名包含引号,则同样有效。只需确保在变量定义中将它们转义。这是一个类似的脚本,但它查询"columnName" TEXT列:

代码语言:javascript
复制
#!/bin/bash

KEYSPACE="stackoverflow"
TABLE="stuff_with_quotes"
COLUMN="\"columnName\""

~/local/apache-cassandra-3.10/bin/cqlsh -u cassandra -p cassandra -e "SELECT $COLUMN FROm $KEYSPACE.$TABLE;"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44014569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档