Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak w SQL uzyskać maksymalną wartość liczby całkowitej?

W Mysql jest do tego tania sztuczka:

mysql> select ~0;
+----------------------+
| ~0                   |
+----------------------+
| 18446744073709551615 |
+----------------------+

tylda jest negacją bitową. Wynikowa wartość to bigint. Zobacz:http://dev.mysql .com/doc/refman/5.1/en/bit-functions.html#operator_bitwise-invert

W przypadku innych smaków liczb całkowitych można użyć prawego operatora przesunięcia bitowego >> tak:

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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Użycie Python3 mysqlclient-1.3.6 (aka PyMySQL)?

  2. Blokowanie poziomu wiersza w Mysql

  3. Pełna lista lokalizacji w MySQL

  4. Jak przechowywać 60 wartości logicznych w bazie danych MySQL?

  5. phpMyAdmin na MySQL 8.0