Ταξινόμηση στην mySQL

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Skywalker
Δημοσιεύσεις: 31
Εγγραφή: 20 Μάιος 2008 17:33

Ταξινόμηση στην mySQL

Δημοσίευση από Skywalker » 12 Ιούλ 2011 13:29

Γεια σας,

Θέλω να κάνω μια ταξινόμιση στη mySQL. Εχω βάλει ένα πεδίο με το ονομα "sort" και κάνω ταξινομηση με drag n drop με ajax & Jquery. Όλα καλά μέχρι εδώ αλλά η ταξινομηση που μου βγαζει στο Ajax είναι του τύπου "1, 2, 3, 4, 5" κλπ.

Όταν η εγγραφές ξεπερνάνε τις δέκα τότε έχω το εξής πρόβλημα. Η ταξινόμηση γίνεται ως εξης: "1, 10, 11, 12... 2, 20, 21, 22... 3, 30, 31, 32" και πάει λέγοντας. Πως μπορω να κάνω "ORDER BY sort" και να μου βγαλει κανονικά την ταξινόμηση; Δηλαδή του τύπου "1, 2, 3, 4... 10, 11, 12, 13, 14... 20, 21, 21, 23 και παει λέγωντας" Ξέρει κανέις να μου πεί;

Ευχαριστώ.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Ταξινόμηση στην mySQL

Δημοσίευση από korgr » 12 Ιούλ 2011 13:42

Να κανεις το πεδιο sort να ειναι τυπου int

hondrosk
Δημοσιεύσεις: 29
Εγγραφή: 06 Ιούλ 2005 14:18
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

Ταξινόμηση στην mySQL

Δημοσίευση από hondrosk » 08 Δεκ 2011 20:45

Εαν το πεδίο μας δεν έχει μόνο νουμερα αλλα και χαρακτήρες?
πχ
jfk-1, jfk-2,jfk-3.....jfk-10,jfk-11

τοτε πως κανουμε sort ωστε να μην βγαίνει:
jfk-1,jfk-10,jfk-11,jfk-2....klp

?

το πεδιο δεν αλλαζει σε ΙΝΤ αν περιέχει και χαρακτηρες...

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Ταξινόμηση στην mySQL

Δημοσίευση από Khronos » 08 Δεκ 2011 20:56

Ένας τρόπος είναι να προσθέτεις μηδενικά μπροστά απο τον αριθμό.

πχ. jfk-01, jfk-02

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Ταξινόμηση στην mySQL

Δημοσίευση από korgr » 08 Δεκ 2011 21:56

Η καλύτερη λύση είναι να το κρατήσεις ως varchar το πεδίο αλλά να πεις στην Mysql να του συμπεριφερθεί σαν INT

Για παράδειγμα:

Κώδικας: Επιλογή όλων

ORDER BY CAST(`varchar_field` AS SIGNED)

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ταξινόμηση στην mySQL

Δημοσίευση από dva_dev » 09 Δεκ 2011 01:34

Εχω βάλει ένα πεδίο με το ονομα "sort" και κάνω ταξινομηση με drag n drop με ajax & Jquery
Εαν το πεδίο μας δεν έχει μόνο νουμερα αλλα και χαρακτήρες?
πχ
jfk-1, jfk-2,jfk-3.....jfk-10,jfk-11...
Φτιάξε ένα πεδίο "orderNo" που να είναι αριθμός και κάνε ταξινόμηση με αυτό. Μην μπλέκεις με κείμενα όταν αυτό που θέλεις είναι ολοφάνερα αριθμός.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης