是否有更好的方法来确定一个整数是否以特定的两位数字结束?



在具有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函数中使用%无关。

最新更新