Hei!
Minulla on tietokantaan tallennettuna hyvin eri kokoisia lukuja, ja ne tulisi saada sieltä ulos järjestyksessä. Tällä hetkellä taulun tyyppinä on VARCHAR. Ongelma muodostuu siinä vaiheessa, kun lukuna onkin esimerkiksi 2E+15, jolloin sitä ei osatakaan enää laittaa oikeaan paikkaan, kun Mysql ei tuota ilmeisesti luvuksi tunnista. Eli voinko pakottaa Mysqliä käsittelemään tuota numerona mitenkään, vai tulisiko kentän tyyppiä muuttaa? Ja jos tulisi niin miksi?
koita VARCHAR tilalle BIGINT
Ei toimi, kun BIGINT ei hyväksy desimaalilukuja, eikä lukuja muodossa 1E-15
Heippa sane!
Lättää se arvo kantaan tekstinä ja muuttele haun jälkeen takas luvuks...
Mitä tarkoitat arvon lättäämistä tekstinä? Ja saisiko tälleen Mysqlin palauttamaan suoraan oikeassa järjestyksessä? Tietenkin mahdollisuus on suorittaa tuo lajittelu vasta php:n voimalla, mutta "oikeammin" taitaisi olla saada se oikeassa järjestyksessä jo kannasta?
Heippa taas sane!
Jos nyt kannassa sattuis olemaan vaikka teksti "123.2" niin melko varmasti, nousevassa järjestyksessä, lajittelussa se on ennen tekstiä "1234.1" jne...
DECIMAL tai NUMERIC -tietotyypit. (sori, Nea, olet viestin poiston uhri)
Moikka GimPeltzi!
You're damn right, mutta siinä missä noidenkin rajat tulee vastaan niin stringin pituus, vaikkapa 150-merkkiä. hakkaa niiden palautteen joka kerta vertailussa...
Kuinka monta numeroa voi olla luvun kokonaisosassa ja luvun desimaaliosassa? Täytyykö luvut tallentaa tarkasti ilman pyöristyksiä?
Tuo 2E+15 kuulostaa liukuluvulta, joten ehkä tyyppi DOUBLE olisi sopiva. Voi kuitenkin olla, että MySQL ei sisällä sopivaa tyyppiä, vaan luvut täytyy järjestellä vasta PHP:ssä.
HEIPPA!
anna, please, mun nyt ymmärtää GimPelzi ++ and I'll show you mitä on jäynä...
Kiitoksia, tuolla DOUBLE tyypillä onnistuu mainiosti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.