Προς το περιεχόμενο

MySQL


Loots_A_Loot

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα πρόβλημα με MySQL και asp scripting. Συγκεκριμένα, δεν μπορώ να κάνω order τα δεδομένα τα οποία ειναι αποθηκευμένα με ελληνικούς χαρακτήρες.

Έχει συναντήσει κανείς το ίδιο πρόβλημα;

Δημοσ.

Καλησπέρα φίλε.

 

Αν εννοείς ότι δεν σου τα εμφανίζει με σωστή ταξινόμηση, είναι γιατί η βάση σου έχει ως default character set τα αγγλικά. Αν έχεις τη βάση σε windows τότε βρες το my.ini και πρόσθεσε το εξής: default-character-set=greek. Αν έχεις Linux, λυπάμαι δεν έχω ιδέα. Αν ο server δεν είναι δικός σου και δεν μπορείς να παρέμβεις, τότε το μόνο που μπορώ να σου προτείνω (αυτό κάνω εγώ) είναι να προσθέσεις το χαρακτηριστικό Binary στο πεδίο που θέλεις να κάνεις ταξινόμηση.

 

Δεν ξέρω αν υπάρχει κι άλλος τρόπος. Αν υπάρχει θα ήθελα να τον μάθω κι εγώ.

 

Υ.Γ. Εφόσον χρησιμοποιείς MySQL ίσως θα ήταν καλύτερα φύγεις από ASP και να πας σε PHP.

Δημοσ.

Καλησπέρα, το έχω δοκιμάση με binary αλλά κάνει μισή δουλειά.

Πχ ας υποθέσουμε ότι έχουμε τα εξής records:

 

Α

Β

Δ

Γ

Ά

Έ

 

Στην εμφάνιση κάνει το εξής:

 

Ά

Έ

Α

Β

Γ

Δ

 

Πάντως, όσον αφορά το υστερόγραφο, δεν πιστεύω ότι ειναι δυνατό έναυσμα το order για να φύγει κάποιος από asp ;)

Δημοσ.

Aυτο που περιγραφεις με τα τονισμενα Ελληνικά, δεν ειναι ακριβως πρόβλημα, ειναι η φυσιολογικη συμπεριφορά. το "α" και το "ά" ειναι διαφορετική χαρακτήρες , δεν ειναι ο "ίδιος με τόνο". έχουν διαφορετικό ascii value απο πίσω (225 και 220) , και προφανως θα βγαινουν σε άλλη σειρά.

οπως δεν βγαινει μαζι το α και το Α (greek), kai a, A (latin).

 

πρέπει να ενεργοποιησεις (αν υπάρχει) καποια δυνατοτητα της database να κανει sort με κριτηρια "γλωσσολογικά", ασ πουμε, και οχι με ASCII που κανουν ολες by default.

δεν ξερω αν γινεται αυτο στη mysql,

 

μερικοί προτίνουν -σαν προχειρη λυση, δεν ειναι τέλειο - το

SELECT NAME FROM NAMESTABLE ORDER BY lower(NAME);

(αν ο πινακας ειναι τεραστιος, φτιαχνεις ενα index based on lowe(name) γιατι θα επιβραδυνθεί πολυ το select , σε σχεση με το απλο order by name)

 

και σου βγαίνει με τη σειρά το

άκης, Άκης, ακης, Ακης,...

 

*δεν ξερω αν λεγετε ετσι στη mysql η function lower() ή to_lower() , αλλα σιγουρα εχει κατι τέτοιο.

 

http://theory.uwinnipeg.ca/mysql/manual_Charset.html

 

http://www.dbazine.com/gulutzan1.shtml

 

λεξεις για αναζητηση : (η βαση μου : mysql) + sort Collation linguistic sorting greek

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...