|
Тема |
Re: ei-taka [re: charly] |
|
Автор |
salle (Един такъв) |
|
Публикувано | 11.02.02 11:40 |
|
|
Като оставим настрана тоа, че не е добра идея да пазиш цифри в CHAR колони ето ти един два съвета
1. Най-лесния начин да преобразуваш CHAR в Цифров тип е +0
в твоя случай:
SELECT char_col+0 AS num_alias FROM tbl ORDER BY num_alias DESC;
този номер важи за всички типове само при DATE, TIME, DATETIME работи малко по-различно
2. Обратният номер - понякога ти се налага да обработваш цифрова информация като стрингове. Тогава а и в други случаи е добре да имаш фиксирана дължина и запълване с 0 отпред:
12345
00534
00002
50204
00037
В MySQL можеш да дефинираш
num_col INT(5) ZEROFILL
и ше получиш горния ефект.
В случая декларацията INT(N) означава N цифри в резултата и няма нищо общо с вътрешното представяне. т.е. INT продължава да е 4 byte и приема всички възможни стойности, но ако числото е малко от N десетични цифри при SELECT се запълва с 0
често срещана грешка е да мислиш, че INT(2) означава 2-байта
ZEROFILL може да се добавя за всички цифрови типове:
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL
Успех. И питай - ще ти отговорят
Linux is like a wigwam - No Windows, No Gates, Apache inside
|
| |
|
|
|