mysql - 在 R 中用查询替换表达式参数

标签 mysql regex r expression

我有一个表达式 max(51)。我想用数据库中与此 ID 相关的值替换表达式中的参数,即 51。所以我替换后的表达式如下:

max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=51"))

其中 con 是 MySQL 连接对象。 我尝试了以下方法从表达式中提取参数

PARAMETER <- gsub(".*\\((.*)\\)$", "\\1", "MAX(51)");

现在我的最终表达式将变成这样:

max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=PARAMETER"));

那么如何在 R 中完成这种替换呢?这只是一个操作数表达式。是否可以使用更复杂的表达式,例如

max(51)+min(52)-53

谢谢..

最佳答案

我通过以下方式实现了这一目标:

operand <- "max(51)";
PARAMETER <- gsub(".*\\((.*)\\)$", "\\1", operand);
QUERY=gsub("PARAMETER",PARAMETER,"SELECT VALUE FROM STUD WHERE ID='PARAMETER'");
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;

或者

operand <- "max(51)";
PARAMETER <- gsub(".*\\((.*)\\)$", "\\1", operand);
QUERY=sprintf("SELECT VALUE FROM STUD WHERE ID = '%s'", PARAMETER);
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;

关于mysql - 在 R 中用查询替换表达式参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587735/

相关文章:

mysql - 使用选择查询问题

mysql - 如何跟踪 POS 系统一段时间内的产品成本?

regex - 如何将命名空间前缀与正则表达式匹配

c# - 某些文化中的正则表达式和资本 I

r - geom_bar 的 geom_text 位置问题

R语言迭代gera斜体

php - 当我通过 API 从 Laravel 中的数据库获取用户数据时出现错误

python - 正则表达式 python 条字符

regex - R 正则表达式帮助 : Perl s modifier + lookahead too aggressive

mysql IFNULL INSERT 巨大挫折?