理解Modulo逻辑

时间:2014-05-15 18:30:20

标签: mysql sql

请考虑SQL查询中的以下代码段:

WHERE  TableType_ti = 1 
AND TableID_int MOD 2 = 0 
AND TaskScheduled_dt < NOW()

我不明白,AND TableID_int MOD 2 = 0行实际上在做什么?如果我已正确理解,TableID_int MOD 2值首先被评估,然后与0进行比较。

如果我错了,请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

当两个整数相互分开时,模数运算符返回余数。所以:

  • 5 mod 2 = 1
  • 9 mod 3 = 0
  • 10 mod 6 = 4

当你取整数mod 2时,你正在测试它是偶数还是奇数。即使是0,奇数也是1