在具有indexRow
的整数主键的表中,其中最后两位数字当前为55,我想将其更改为50,但仅当列added
是整数值55并且indexRow
以55结束时。我用的是SQLite
我对它进行了如下测试。请告诉我这是否是正确的方法(如果有更好的方法),因为我想用它来运行更新表?
当然,我会在事务中做,并在提交之前进行测试;但我想问问。我原以为必须使用一些数学来确定哪些indexRows以55结尾,但将其转换为字符串似乎很容易。
select indexRow, indexRow-5, substring(format('%s', indexRow),-2)
from newSL
where added=55
and substring(format('%s', indexRow),-2)='55'
limit 10;
indexRow indexRow-5 substring(format('%s', indexRow),-2)
----------- ----------- ------------------------------------
10080171455 10080171450 55
10130031255 10130031250 55
10140021655 10140021650 55
10140080955 10140080950 55
10240330155 10240330150 55
10250230555 10250230550 55
10270031155 10270031150 55
10270290355 10270290350 55
10300110355 10300110350 55
10300110455 10300110450 55
是的,使用模算子%
。在表达式x % y
中,结果是x
除以y
的余数。因此,4173% 100 = 73。
请注意,%
是一个数学运算符,就像*表示乘法,/表示除法一样,与在format函数中使用%
无关。