質問

rmysqlを使用してmysqlクエリを実行しようとしています。 LIKE クエリ内のカスタム変数。

これが私の質問の例です

customvar= 'some text'
(simpleQuery<-paste("SELECT * FROM `table` WHERE NameOfField like '%",customvar,"%'")) 
res<-dbGetQuery(con, simpleQuery)

問題は、何らかの理由でSimpleQueryがこのようなクエリを解釈するということです

[1] "SELECT * FROM `table` WHERE NameOfField '% some text %'"

前後のスペースに注意してください some text これらは、適切な結果を得るために私の質問を妨げています

これらのスペースが生成されている理由はわかりません。私はそれらのスペースなしでクエリをテストし、結果を返しているので、それらのスペースが私のクエリを失敗させていると確信しています。

この問題を回避する方法の考えはありますか?

バージョン:R 2.14.0 / RMYSQL 0.8

前もって感謝します

役に立ちましたか?

解決

デフォルト pastesep=' ' (スペース)、しかしあなたはおそらく意図した sep='' (空の文字列)。最近のRでは、使用できます paste0 代わりは。

他のヒント

GSUBFNを取得し、この問題をコマンドライン(Rではない)で実行して解決します。

wget http://cran.r-project.org/src/contrib/Archive/gsubfn/gsubfn_0.5-7.tar.gz
rm gsubfn_0.6-3.tar.gz

これにより、2.14と互換性のあるGSUBFNのバージョンがインストールされます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top