I'm not saying your statement is inefficient, I'm saying it's wrong because it produces unwanted results.
If the fields a,b,c ('12','34','56') should be updated to ('1','2345','6') your statement would fail instead of doing the expected update. Which means with every false hit it has less data to write and thus is faster because of the false hits (instead of "even with"). Imanuel Am 25.11.2012 17:13, schrieb Simon Slavin: > > On 25 Nov 2012, at 4:11pm, Imanuel <my_mailings_addr...@gmx.de> wrote: > >> Hi Keith >> >>> UPDATE user SET a=1,b=2,c=3 WHERE a||b||c!=1||2||3; >> >> It seems to me that this is not reliable. >> Think the the following text values: >> a='12' >> b='34' >> c='56' >> >> If you want to update these values to: >> a='1' >> b='2345' >> c='6' >> >> Then your statement would not update because '123456' = '123456'. > > You're quite right, but in some cases it's sufficiently faster than doing > > WHERE a!=1 OR b!=2 OR c!=3 > > that even with the false hits it takes less time to process. > > Simon. > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users