gpt4 book ai didi

Android SQLiteStatement 和 UPDATE SET ... WHERE IN (1,2,3)

转载 作者:行者123 更新时间:2023-11-30 03:16:07 26 4
gpt4 key购买 nike

我想执行下面的 SQL 语句:

UPDATE X SET y=10 WHERE z IN (1,2,3,4);

由于集合可以包含任意数量的元素,因此我创建了以下 SQL 字符串语句:

UPDATE X SET y=? WHERE z IN (?);

接下来,我很好地预编译了它,并使用 SQLiteStatement 类以下列方式提供投标参数:

statement.bindLong(1, myLong);
statement.bindString(2, "1,2,3,4");
statement.executeUpdateDelete();

我天真地希望它会起作用。决不。如果只有一个值作为第二个参数,例如。

 statement.bindString(2, "1");

然后就可以了。否则没有机会。

这不是某种错误吗?任何其他建议如何以优雅的方式进行?当然,我可以直接将值放入 String 语句中:

UPDATE X SET y=? WHERE z IN (?);

但是预编译是不可能的。 :(

最佳答案

您不能在一个调用中绑定(bind)多个多头。

你应该做的是使用像这样的 SQL 字符串语句:

UPDATE X SET y=? WHERE z IN (?,?,?,?);

关于Android SQLiteStatement 和 UPDATE SET ... WHERE IN (1,2,3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20096478/

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