我正在运行一个 R 脚本,该脚本从 MySQL 获取查询。查询本身是有效的,但依赖于变量“N”。
为了将此变量添加到我的 SQL 代码中,我使用 sprintf 通过在我想要的位置键入 %s
来插入它。但是,我的查询还包含多个 LIKE
语句:
FROM `Receipts`
WHERE `RetailerID`
IN ( '%s' ) # this is where "N" is placed
AND ( `Date` LIKE '%01/07/2014%')
我确信这就是我的查询未运行的原因。 sprintf
命令在到达这些 LIKE
命令时出现问题,可能认为它与 %s
类似。
有谁知道如何解决这个问题,以便仍将 %01/07/2014%
打印到 SQL 查询中?我尝试过像这样使用转义 %%
,%%01/07/2014%%
但它仍然不起作用。
有没有办法可以格式化 sprintf
以便它知道跳过这些?
谢谢!
最佳答案
要使 @cryo111 的评论成为明确的答案:
像这样使用gsub
:
N=10
query="select * from table where table.cnt=@N"
gsub("@N",N,query)
关于mysql - 使用 sprintf 将变量插入 SQL 查询时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979432/