[SQL] SQL에서 어떻게 정수의 최대 값을받을 수 있나요?
SQLSQL에서 어떻게 정수의 최대 값을받을 수 있나요?
나는 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
해결법
-
==============================
1.MySQL의에서이 작업을 수행하는 싼 트릭이있다 :
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)
-
==============================
2.모든 내장이 값을 공급하는 상수있을 것 같지 않습니다. 가장 가능성이 그들이 변경되지 않습니다 때문에, 당신은 안전하거나 하드 코딩을하거나 조회 테이블이나 변수에 그 값을 설정해야합니다.
모든 내장이 값을 공급하는 상수있을 것 같지 않습니다. 가장 가능성이 그들이 변경되지 않습니다 때문에, 당신은 안전하거나 하드 코딩을하거나 조회 테이블이나 변수에 그 값을 설정해야합니다.
from https://stackoverflow.com/questions/2679064/in-sql-how-do-i-get-the-maximum-value-for-an-integer by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 여러 열에서 CHECK 제약 조건 (0) | 2020.05.24 |
---|---|
[SQL] 여러 행의 마지막 삽입 된 ID를 가져 (0) | 2020.05.24 |
[SQL] SQLite는 자동 증가 기본 키가 아닌 필드 (0) | 2020.05.24 |
[SQL] 에서 SQL 필터 기준은 기준을 가입하거나 더 효율적으로 절이고있는 (0) | 2020.05.24 |
[SQL] 어떻게 엔티티에 LINQ와 SQL 'LIKE'를 사용 하는가? (0) | 2020.05.24 |