Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

cast as int ne radi

[es] :: MySQL :: cast as int ne radi

[ Pregleda: 1196 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

--ja--

Član broj: 4387
Poruke: 232
*.duo.carnet.hr.

ICQ: 132872590


+3 Profil

icon cast as int ne radi01.07.2012. u 09:27 - pre 142 meseci
Pozdrav svima,

recimo da imam tablicu ovako kreiranu i napunjenu:
Code:
CREATE TABLE `test`
(
    `IDTest` INT NOT NULL AUTO_INCREMENT,
    `TestKolona` INT NULL,
    PRIMARY KEY (`IDTest`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

INSERT INTO `test` (TestKolona) VALUES (4);
INSERT INTO `test` (TestKolona) VALUES (2);
INSERT INTO `test` (TestKolona) VALUES (NULL);


Pokušavam natjerati slijedeći upit da radi, ali neće pa neće:
Code:
SELECT
    IDTest
    , CAST(COALESCE(TestKolona, 3) AS INT) AS TestKolona
FROM test;


Naime COALESCE u ovom slučaju iz nekog razloga ne vraća INT, pa mi se ta kolona ne mapira dobro u aplikaciji, što sam htio popraviti CAST-om u int.

Gdje sam pogriješio?

Marko
http://www.dropbox.com/referrals/NTQ0MTI2NDc5
https://www.agronomija.info/
Failure is not an option. It comes bundled with your Microsoft product.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: cast as int ne radi01.07.2012. u 15:06 - pre 142 meseci
Code:

$> mysql --column-type-info test
...

mysql> SELECT IDTest, CAST(COALESCE(TestKolona, 3) AS SIGNED) AS TestKolona FROM test;
Field   1:  `IDTest`
Catalog:    `def`
Database:   `test`
Table:      `test`
Org_table:  `test`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 1
Decimals:   0
Flags:      NOT_NULL PRI_KEY AUTO_INCREMENT NUM PART_KEY 

Field   2:  `TestKolona`
Catalog:    `def`
Database:   ``
Table:      ``
Org_table:  ``
Type:       LONGLONG
Collation:  binary (63)
Length:     11
Max_length: 1
Decimals:   0
Flags:      BINARY NUM 


+--------+------------+
| IDTest | TestKolona |
+--------+------------+
|      1 |          4 |
|      2 |          2 |
|      3 |          3 |
+--------+------------+
3 rows in set (0.02 sec)

mysql> 


el ti ovo radi posao ?

p.s. bila je neka stara verzija mysql-a sa bagom ovde .. koja ti je verzija gde radis? da li mozes da odradis upgrade?
 
Odgovor na temu

--ja--

Član broj: 4387
Poruke: 232
*.duo.carnet.hr.

ICQ: 132872590


+3 Profil

icon Re: cast as int ne radi01.07.2012. u 19:25 - pre 142 meseci
U principu mi to ne pomaže, MySQL single tip mi na aplikaciju stiže kao Long, a business objekt za to polje mi ima Property tipa int. Imam helper klasu koja automatski mapira kolone iz tablice na property-e u business objektu. Pošto mi je property tipa int, ne mogu mu bez cast-a na aplikaciji pridružiti long vrijednost, a cast raditi u jednoj generičkoj helper klasi nema smisla... Imati business objekte koji imaju propertye različite od stvarnog stanja na bazi mi isto nema smisla, a nema mi smisla niti mijenjati kolonu u bazi na single jer je riječ o foreign key-u na šifrarnik koji ima svega 3 zapisa :/

MySql je "Server version: 5.1.62-0ubuntu0.11.04.1 (Ubuntu)", na mom je stroju i mogu mu raditi što god želim...

Anyway, imam način da ovo zaobiđem na aplikaciji, samo me zanimalo što ne valja u mom upitu, jel to bug u MySQL ili nisam nešto dobro razumio?

Tnx!
http://www.dropbox.com/referrals/NTQ0MTI2NDc5
https://www.agronomija.info/
Failure is not an option. It comes bundled with your Microsoft product.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: cast as int ne radi01.07.2012. u 21:44 - pre 142 meseci
ne valja ti AS INT, INT nije validan tip

http://dev.mysql.com/doc/refma...t-functions.html#function_cast
Citat:

The type for the result can be one of the following values:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]



 
Odgovor na temu

[es] :: MySQL :: cast as int ne radi

[ Pregleda: 1196 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.