示例
示例
SELECT MOD(7, 3), 7 % 3; -- 1, 1
SELECT MOD(-7, 3); -- -1(符号跟随被除数)
-- 分桶路由
SELECT MOD(ABS(CRC32(user_id)), 16) AS bucket;| 除零 | MySQL 返回 NULL;PostgreSQL 抛 division by zero 错误 |
|---|---|
| 负数 | 结果符号跟随被除数,分桶前先 ABS 或修正 |
| 等价 | MOD(a,b) 与 a % b 等价(两库) |
取余数:分表路由、采样、奇偶判断常用;对负数取模的符号规则与除零行为两库不同,分桶公式要写防御性版本。
SELECT MOD(7, 3), 7 % 3; -- 1, 1
SELECT MOD(-7, 3); -- -1(符号跟随被除数)
-- 分桶路由
SELECT MOD(ABS(CRC32(user_id)), 16) AS bucket;| 除零 | MySQL 返回 NULL;PostgreSQL 抛 division by zero 错误 |
|---|---|
| 负数 | 结果符号跟随被除数,分桶前先 ABS 或修正 |
| 等价 | MOD(a,b) 与 a % b 等价(两库) |