gpt4 book ai didi

java - 更新查询不适用于 OrientDB 中的 eval() 函数和参数

转载 作者:行者123 更新时间:2023-11-30 03:39:22 24 4
gpt4 key购买 nike

在我的项目中,我使用 Orientdb,更新查询时出现一些问题。

int amt = 100;
int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - "+ amt +"') where eval('id - "+amt+"') > 0")).execute();

这工作正常。但是,

int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - ?') where eval('id - ?') > 0")).execute(100,100);

Map<String,Object> params = new HashMap<String,Object>();
params.put("amt", "100");
int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - :amt') where eval('id - :amt') > 0")).execute(params);

不工作。请帮我做作业。

最佳答案

变量替换并不是在 SQL 中的任何地方都有效,特别是在字符串内部。您可以像第一个示例一样连接值或尝试使用上下文变量,例如:

OCommandSQL cmd = new OCommandSQL("update A set id = eval('id - $id') where eval('id - $id') > 0");
cmd.getContext().setVariable( "id", 100 );
int recordsUpdated = db.command(cmd).execute();

关于java - 更新查询不适用于 OrientDB 中的 eval() 函数和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com