返回类型的计数或最大值计数可以返回mysql

时间:2015-12-24 07:38:53

标签: java mysql

小,
count(*) sql返回的列的类型是什么?
count(*)列可以返回的最大值是什么?

详细说明:
我有数百万条记录的数据库,如果我使用count(*),那么我很想知道哪些类型在该列中返回,MySQL有Integer Types的不同类型在count(*)中返回的类型列,以便我知道该列可以给出的最大值。

我正在使用java程序以分页的方式遍历整个数据库,所以我想知道有多少条记录,如果有数十亿条记录,那么我会被count限制在一些较高的值。< / p>

2 个答案:

答案 0 :(得分:1)

  

count(*)sql返回的列的类型是什么?

是BIGINT。

来自manual

  

返回行中expr的非NULL值的数量   由SELECT语句检索。 结果是BIGINT值

  

count(*)列可以返回的最大值是什么?

BigInt的范围是 -9223372036854775808 9223372036854775807 ,这足以容纳您的表格值。

答案 1 :(得分:0)

我试图使用JpaRepository从MariaDB表中检索最后一条记录,返回的值为BigInteger,因此必须在服务层中将返回类型更改为BigInteger我们可以根据需要使用.longValue()将其转换为Long。

`@Query(value = "SELECT max(id) FROM inventory", nativeQuery = true)`
`Optional<Long> getLastFileSequenceNumber()`

更改为:

`@Query(value = "SELECT max(id) FROM inventory", nativeQuery = true)`
`Optional<BigInteger> getLastRecord()`

在服务层:

getLastRecord().get().longValue()