squidsk |
08-26-2014 02:42 PM |
Is that a custom query? I'm asking because it is not designed very well and leaves a lot to be desired. The problem you have is that one (or more) of those users has no unread vms, so when you set vmunreadcount to be vmunreadcount - 1 for those users it sets the vmunreadcount to -1, which will throw that db error you're seeing.
The query should be something like this instead:
Code:
UPDATE user
SET vmunreadcount = IF (vmunreadcount > 0, vmunreadcount - 1, 0)
WHERE userid IN (31,1473,1506,1579,1768,2266,3267,3449,3579,4241,4793,5140,5717,5936,5971,6119,6370,6570,6635,7559,7757,8598,8839,9676,10543,10737,11037,11269,13080,13834,14213,14713,15486,15738,15960,16578,16639,16822,17554,18255,18407,19079,19342,19632,19972,20270,20434,20450,20675,20779,20816,20978,21160,21184,21339,21561,21586,21920,22079,22161,22224,22323,22517,22593,22679,22741,22788,22876,22976,22996,23002,23093,23110,23211,23369,23678,23819,23873,24114,24122,24278,24388,24394,24453,24599,24769,24805,24886,25195,25212,25493,25545,25682,25793,26037,26273,26515,26962,27268,27404,27457,27648,27714,27990,28073,28348,28491,29187,29234,29507,29743,29946,30278,30377,30774,30919,31570,31588,31624,31677,31907,32326,32374,32648,33184,33335,33455,33467,33474,33519,33670,33703,33722,33763,33765,33766,33771,33783);
This query assumes that all userids listed in the where clause should have their unreadvmcount lowered by 1, if possible.
|