RMySQL添加空格来查询使其失败

时间:2012-01-14 20:12:20

标签: mysql r rmysql

我正在尝试使用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

提前致谢

2 个答案:

答案 0 :(得分:1)

paste中的默认值为sep=' '(空格),但您可能打算sep=''(空字符串)。在最近的R中,您可以使用paste0代替。

答案 1 :(得分:0)

你得到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版本