在Mysql中,有一个便宜的技巧可以做到这一点:
mysql> select ~0;+----------------------+| ~0 |+----------------------+| 18446744073709551615 |+----------------------+
波浪号是按位取反。结果值是bigint。参见:http :
//dev.mysql.com/doc/refman/5.1/en/bit-functions.html#operator_bitwise-
invert
对于其他整数型,可以使用正确的bitshift运算符,
>>如下所示:
SELECT ~0 as max_bigint_unsigned, ~0 >> 32 as max_int_unsigned, ~0 >> 40 as max_mediumint_unsigned, ~0 >> 48 as max_smallint_unsigned, ~0 >> 56 as max_tinyint_unsigned, ~0 >> 1 as max_bigint_signed, ~0 >> 33 as max_int_signed, ~0 >> 41 as max_mediumint_signed, ~0 >> 49 as max_smallint_signed, ~0 >> 57 as max_tinyint_signedG*************************** 1. row *************************** max_bigint_unsigned: 18446744073709551615 max_int_unsigned: 4294967295max_mediumint_unsigned: 16777215 max_smallint_unsigned: 65535 max_tinyint_unsigned: 255 max_bigint_signed: 9223372036854775807 max_int_signed: 2147483647 max_mediumint_signed: 8388607 max_smallint_signed: 32767 max_tinyint_signed: 1271 row in set (0.00 sec)



