我试图创建一个查询来更新多个记录,但是我错误地编写了错误的版本,但它运行时没有任何错误。
错误的版本:public int getIndexIfStartsWith(String str){
for(int index = 0; index < models.size(); index++){
if(str.startsWith(CommonUtils.padLeft(models.get(index).getKey(), 2))){
return index;
}
}
return -1;
}
。
任何人都可以解释它的作用以及它为什么不会失败。
答案 0 :(得分:5)
我想:
update table SET c1=1 AND c2=2
被翻译为:
update table
SET c1 = (1 AND c2=2)
然后评估并隐式转换表达式(1 AND c2=2)
以更新字段c1
。
因此,例如,如果您的表格如下所示:
create table mytable (c1 int, c2 int);
insert into mytable values
(1, 3),
(2, 1),
(3, 2);
查询:
SELECT c1, c2, 1 AND c2=2 AS expr
FROM mytable
返回:
c1, c2, expr
------------
1, 3, 0
2, 1, 0
3, 2, 1