mysql - 使用 sprintf 将变量插入 SQL 查询时出现问题

标签 mysql sql r

我正在运行一个 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/

相关文章:

MySQL any 关键字用法

mysql - SQL 查询 - 通过基于两个外键的重复条目生成结果

r - sqldf 中的 DATEPART()

r - 排列流水车间总时间

mysql - 为登录用户保存记录时,用户 ID 为 NULL

php - 更新mysql记录

Mysql 查询为每个空记录将计数器或标记加一..?

MySQL "Multi-Dimensional?"动态数据透视表

sql - SSIS 问题无法解密 protected XML 节点

R Bookdown _bookdown.yml