2017-05-17 8 views
1

カラム名が引用符で囲まれた-eオプションを使用して実行するのが難しいです。cqlsh -eを使用して問題を実行しているcqlsh

私は以下のようないくつかのことをUN​​IXレベルで実行したいと思っています。シェルスクリプトから実行しようとしています。私は引用符で私の値を入れようとすると、私の列の引用符を取り除く。あなたが配置する必要はありません 'ColumnNameに= keyspace.cfから選択*' これはcqlshホスト名-eとして実行されている

stdin>:1:InvalidRequest: Error from server: code=2200 [Invalid query] message="Undefined name columnaname in where clause ('columnname= 'value'')" 
+0

なぜ列名を引用符で囲みますか?あなたのテーブルスキーマは何ですか? –

+0

'cqlsh hostname -e" select * from keyspace.cf where columnname = '' "' ... columnnameには二重引用符は必要ありません(columnnameは大文字になります) –

答えて

0

​​

:これを試し

select * from keyspace.cf where "columnname"='' 

columnnameの周りの引用符を設定するには、それを設定し、$の前に接頭辞を付ける必要があります。

cqlsh -u cassandra -p cassandra -e "SELECT $COLUMN FROm $KEYSPACE.$TABLE;" 

これは、getVersion.shというスクリプトの抜粋です。

#!/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;" 

[email protected]:~/scripts$ ./getVersion.sh 

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

(1 rows) 

カラム名に引用符が含まれている場合も同様です。変数定義でエスケープするようにしてください。これは同様のスクリプトですが、"columnName" TEXT列に照会します。

#!/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;" 
関連する問題