R dbEscapeStrings 似乎没有按预期工作

问题描述

努力用单引号转义字符串,以便我可以查询数据库。

以下文档中的示例让我更加困惑:

https://www.rdocumentation.org/packages/RMySQL/versions/0.10.20/topics/dbEscapeStrings
https://cran.r-project.org/web/packages/RMySQL/RMySQL.pdf

示例说明:

tmp <- sprintf("SELECT * FROM emp WHERE lname = %s","O'Reilly")  
dbEscapeStrings(con,tmp)

据我所知,这会(并且确实)生成不正确的 sql: select * from emp where lname = O'Reilly

我尝试在 %s 周围添加引号:

tmp <- sprintf('SELECT * FROM emp WHERE lname = "%s"',"O'Reilly")  
escaped_query <- dbEscapeStrings(con,tmp)

tmp:select * from emp where lname = \"O'Reilly\"
转义查询:select * from emp where lname = \\\"O\\'Reilly\\\"

我相信我需要得到以下输出:
select * from emp where lname = "O\'Reilly"

我是否想念理解某些东西?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)