2016-07-20 32 views
1

所以,“\”,正在粉碎我的灵魂。我正在查询RMySQL,需要一些奇怪的字符串转义,我似乎无法找到正确的粘贴调用。R查询字符串中的反斜杠问题

query <- 'CALL `storedprocX`(1, 30, "\'xyz-f43\', \'1002\'")' 

我到目前为止的尝试已经接近,但我似乎无法在正确的位置得到字面反斜杠。

ids <- c("xyz-f43","1002") 
x <- 1 
y <- 30 

paste0('CALL `storedprocX`(',x,',',y,paste0(" \\'",ids,"\\'",collapse = ","),')') 

任何人都有这方面的经验?

回答

1

我不熟悉RMySQL,但不是SQL引擎负责转义?

> esc.ids = paste(sprintf("\\'%s\\'", ids), collapse = ", ") 
> esc.ids = paste0("\"", esc.ids, "\"", collapse = "") 
> my.q = paste0("'CALL `storedprocX`(1, 30, ", esc.ids, ")'", collapse = "") 
> cat(my.q) 
'CALL `storedprocX`(1, 30, "\'xyz-f43\', \'1002\'")' 
> nchar(my.q) 
[1] 52 

SQL会不会在这里做同样的猫吗?