我有以下场景,我在表类别中有一个名为categoryid的表列,我需要选择表中categoryid为100及以上的所有行,间隔为100.
例如
SELECT * FROM categories WHERE categoryid IN(100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000...
有没有比手动键入所有间隔更好的方法,它应该从100开始,然后上升到最后一个数字.请记住,最后一个号码可以随着客户添加新类别而改变.这是可能的,希望我有道理.
最佳答案
所以我使用的这个%运算符称为模运算符,它将在除以数字后给出余数(在本例中为100).如果余数为0,那么它是100的倍数.我们还需要> = 100条件,因为零也通过模数条件.
@H_404_24@SELECT * FROM categories WHERE categoryid >= 100 AND categoryid % 100 = 0;