当前位置: 首页 > 面试题库 >

在SQL中,如何获取整数的最大值?

岳奇逸
2023-03-14
问题内容

我正在尝试从MySQL数据库中找出整数(有符号或无符号)的最大值。有没有办法从数据库本身撤回此信息?

有没有我可以使用的内置常量或函数(标准SQL或MySQL专用)。

在http://dev.mysql.com/doc/refman/5.0/en/numeric-
types.html上,
它列出了值-
但是数据库有一种方法可以告诉我。

以下是MAX_BIGINT-我想要的是MAX_INT。

SELECT CAST( 99999999999999999999999 AS SIGNED ) as max_int;
# max_int | 9223372036854775807

问题答案:

在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_signed
\G

*************************** 1. row ***************************
   max_bigint_unsigned: 18446744073709551615
      max_int_unsigned: 4294967295
max_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: 127
1 row in set (0.00 sec)


 类似资料:
  • 问题内容: 我正在使用SQL Server2005。我有一个带有付款ID,用户ID和时间戳的付款表。我想查找每个用户的最新付款。这很容易搜索并找到答案。我还想知道的是,最近的付款是否是用户的第一次付款。 我有以下内容将对每个用户的付款进行编号: 我没有进行一次精神上的飞跃,然后让我为每个用户选择了最高的paymentNumber。如果我通过使用MAX(paymentNumber)然后将以上内容用作

  • 我有两个数组 它们的长度都是4。City保存每个城市的名称,temp保存每个城市的平均温度。温度中的温度与城市中的城市顺序相同。所以我的问题是,我怎样才能得到temp中最大int的索引?我想打印出来

  • 生成包含位数的最低和最高整数值的最佳方法是什么? 例如: =1:Min=0,Max=9 我觉得这应该是一件非常容易完成的事情,但是我正在努力理解它背后的数学。 以下是迄今为止我得到的生成最大值的方法(基于此答案): 如果有人能帮助生成最小值,或者对上面的代码提出改进建议,我将不胜感激。 编辑 我就快到了——这似乎适用于所有情况,除非=1(最小值预期为0)

  • 我在桌子下面。“月份”列表示每个客户已下订单的数量。我想计算连续0的最大数目。 因此结果表将为: 我知道有一个窗口函数可以处理行的连续0,但不确定如何处理列。

  • 问题内容: 我正在尝试创建一个JavaScript函数,该函数从外部JSON中的数组获取信息,然后为JSON变量之一获取最大值(或前5个值)。对于此示例,假设我要获取值“ ppg”的最大值。这是数组的一个小示例: 遍历数组以获取最大值,然后从该值获取“玩家”和“团队”值的最佳方法是什么?该页面将是交互式的,因为我将具有一个下拉菜单栏,允许查看者在“玩家”和“团队”之外的六个JSON值之一之间进行选

  • 问题内容: 我尝试过但失败了: 问题答案: 使用 GREATEST() 例如: 注意:每当那时任何单个值包含null时,此函数始终返回null(感谢用户@ sanghavi7)