Как вы храните научные номера записи в MySQL - PullRequest
4 голосов
/ 19 июня 2011

Я хочу хранить номера научных обозначений в MySql.

Я сохранил их в поле с типом данных decimal. Проблема в том, что он хранит его в обычной записи (по крайней мере, так, как кажется при просмотре номера в веб-консоли, поставляемой с MAMP), и поэтому вам нужно выделить больше байтов для поля ... которое, я считаю, приведет чтобы иметь очень большую базу данных.

Есть ли возможность хранить научную нотацию как есть (гораздо меньше единиц информации), но при этом иметь возможность выполнять численные вычисления, например, <и> (контекст последнего комментария таков: если вам просто нужно отобразить значение, вы можете сохранить его в виде текстового типа, но это не подойдет для меня).

Ответы [ 2 ]

7 голосов
/ 19 июня 2011

FLOAT и DOUBLE типы данных могут быть показаны (и вставлены) с использованием научной записи:

CREATE TABLE numSC
( f float
, d double
) ;

INSERT INTO numSC
VALUES
(POW(10,30), POW(10,30)) ;

INSERT INTO numSC
VALUES
(10.1234567890123456e-20, 10.1234567890123456e-20) ;

SELECT * FROM numSC ;

>  |         f    |                  d    |
>  |       1e+030 |                1e+030 |
>  | 1.01235e-019 | 1.01234567890123e-019 |
7 голосов
/ 19 июня 2011

Сохраните их в поле типа double.

...