2012-01-03 16 views
5

Sto tentando di ordinare una tabella che contiene caratteri greci. La corrispondente versione inglese della tabella viene ordinata (sia ASC sia DESC) bene, ogni volta che si fa clic sull'intestazione della tabella.Ordinamento di nomi non inglesi con MySQL

Ho cercato nei forum greci e l'unica soluzione suggerita è quella di utilizzare ORDER BY BINARY. In effetti, molte persone hanno affermato che l'uso dell'ordine binario ha risolto il loro problema. Sfortunatamente, non è nel mio caso. So che lo stesso problema esiste con lingue come il tedesco, dove l'uso delle dieresi manda all'ordine e in generale nelle lingue con caratteri speciali. Se qualcuno ha qualche idea su come superare questo problema, sarei grato.

+1

Da quello che so dall'ebraico, lingue non latine sono ordinati per la loro ASCII (o Unicode), che in genere dovrebbe funzionare con linguaggi come Greco. Quindi non vedo dove si trova il problema. Potresti focalizzare la tua domanda? –

+0

Ho cambiato il tag [tag: PHP] in [tag: MySQL] poiché questo non ha nulla a che fare con PHP. Inoltre, potresti dare un esempio di qualcosa che non si ordina bene? Solo alcuni nomi. Cosa [charset] (http://dev.mysql.com/doc/refman/5.0/en/charset.html) è il tuo tavolo? – kba

+0

Il problema è che non ottengo l'ordine giusto. Ad esempio, le parole che iniziano con, A che è anche in greco la prima lettera dell'alfabeto, appaiono quasi alla fine del mio tavolo. Non sono molto esperto di PHP e ora sto pensando se la collazione del tavolo è il problema? – user926652

risposta

2

In base a a thread on forums.mysql.com, in MySQL 6.0, è possibile ordinare i nomi greci se il set di caratteri della tabella è impostato su utf8_general_ci. Indice

create table t (s1 char(1) character set utf8 collate utf8_general_ci); 
insert into t values ('Α'),('Β'),('Γ'),('Δ'),('Ε'),('Ζ'); 
select * from t order by s1; 

È possibile che questo dovrebbe restituire

+----+ 
| s1 | 
+----+ 
| Α | 
| Β | 
| Γ | 
| Δ | 
| Ε | 
| Ζ | 
+----+ 
+0

Sto usando MySQL 5.1.53. Suggerisci che dovrei passare all'ultima versione? – user926652

+0

@ user926652, non funziona su MySQL 5.1.x, ma su MySQL 6 - Questo è tutto ciò che posso dire. Se dovresti aggiornare, non posso dirlo. Sembra essere in una fase iniziale di sviluppo, quindi potrebbe non essere una buona idea, ma risolverà questo problema. – kba

Problemi correlati