Saako mysqlissä mitenkään hakua niin, että näyttää numerot numerojärjestyksessä eikä aakkosjärjestyksessä?
Tarkoitus olis tulostaa linkkihakemisto-taulun tietoja sen mukaan, mitä on eniten klikattu.
Mysql järjestää numerot numerojärjestyksessä ja tekstin tekstijärjestyksessä. Eli kait sulla on ne numerot numeerisessa kentässä?
On. Mikä listaa numerojärjestyksessä suurimmasta pienimpään?
ORDER BY DESC listaa aakkosjärjestyksessä suurimmasta pienimpään.
Olisko "order by kentännimi desc" - kerro sille, minkä kentän mukaan haluat järjestää.
Noin se minulla onkin.
Listaa ekana ne linkit, joita on klikattu 9 kertaa, suurin klikkausmäärä on 53 ja se on vasta "sijalla" 41, vaikka pitäis olla ekana.
No ei kai siinä muuta kuin käännät sen järjestyksen:
ORDER BY kentannimi ASC
Tuo ASC on tosin oletus-järjestys, joten sitä ei välttämättä tarvitse kirjoittaa.
ajv kirjoitti:
No ei kai siinä muuta kuin käännät sen järjestyksen:
ORDER BY kentannimi ASC
Tuo ASC on tosin oletus-järjestys, joten sitä ei välttämättä tarvitse kirjoittaa.
Tämä vetää aakkosjärjestyksessä pienimmästä suurimpaan, alkaen ykkösestä ja loppuen ysiin. Sinne välille jää mm. tuo 53
Vaikuttas siltä että kentän tyyppi on joku teksti. Vaihda numeeriseksi.
Kannattaa tarkistaa sellainen vaihtoehto joka on yleinen ongelma: 01 on eri asia kuin 1. Näin ollen luvut 1,2,3,5,7,9,12, 33 järjestetään seuraavasti: 1, 12, 2, 3, 33, 4, 7, 9. Tämä on Windows tyyppinen numerolajittelu, MySQL kyllä osaa järjestää numeeriset kentät oikein, mutta jos tekstikentässä on numeroita, niin ne lajitellaan muistaakseni esimerkin mukaan. Tarkista siis kentän tyyppi.
sooda kirjoitti:
Vaikuttas siltä että kentän tyyppi on joku teksti. Vaihda numeeriseksi.
kiitos!
Muutin kentän tyypiksi Decimal, niin alkoi toimia.
Pekka Mansikka kirjoitti:
Muutin kentän tyypiksi Decimal, niin alkoi toimia.
Kuten tuossa ensimmäisessä vastausksessa jo mainitsin...
Aihe on jo aika vanha, joten et voi enää vastata siihen.