2012-01-03 43 views
5

Tôi đang cố sắp xếp một bảng có chứa các ký tự Hy Lạp. Phiên bản tiếng Anh tương ứng của bảng đang được sắp xếp (cả hai ASCDESC) tốt, mỗi khi bạn nhấp vào tiêu đề của bảng.Sắp xếp các tên không phải tiếng Anh với MySQL

Tôi đã tìm kiếm trên các diễn đàn Hy Lạp và giải pháp duy nhất được đề xuất là sử dụng ORDER BY BINARY. Trong thực tế, nhiều người nói rằng việc sử dụng thứ tự nhị phân đã giải quyết được vấn đề của họ. Thật không may, nó không phải trong trường hợp của tôi. Tôi biết rằng cùng một vấn đề tồn tại trong các ngôn ngữ như tiếng Đức, nơi việc sử dụng các âm sắc làm rối trật tự và nói chung trong các ngôn ngữ với những caracters đặc biệt. Nếu ai đó có bất kỳ ý tưởng làm thế nào để khắc phục vấn đề này tôi sẽ biết ơn.

+1

Từ những gì tôi biết từ tiếng Hebrew, ngôn ngữ không phải Latin đều được sắp xếp bởi ASCII của họ (hoặc Unicode) chỉ số, mà thường phải làm việc với các ngôn ngữ như Người Hy Lạp. Vì vậy, tôi không thấy vấn đề nằm ở đâu. Bạn có thể tập trung câu hỏi của mình không? –

+0

Tôi đã thay đổi thẻ [tag: PHP] thành [tag: MySQL] vì điều này không liên quan gì đến PHP. Ngoài ra, bạn có thể đưa ra một ví dụ về thứ gì đó không tốt? Chỉ một vài cái tên. [Bảng mã] (http://dev.mysql.com/doc/refman/5.0/en/charset.html) là bảng của bạn? – kba

+0

Vấn đề là tôi không nhận được đúng thứ tự. Ví dụ các từ bắt đầu bằng chữ A, ngay cả ở Hy Lạp chữ cái đầu tiên của bảng chữ cái, chúng xuất hiện gần như ở cuối bảng của tôi. Tôi không phải là chuyên gia của PHP và bây giờ tôi đang suy nghĩ nếu collation của bảng là vấn đề? – user926652

Trả lời

2

Theo a thread on forums.mysql.com, trong MySQL 6.0, bạn có thể sắp xếp tên Hy Lạp nếu bảng mã của bảng được đặt thành utf8_general_ci.

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

Trên đây nên trở

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

Tôi đang sử dụng MySQL 5.1.53. Bạn đề nghị tôi nên nâng cấp lên phiên bản mới nhất? – user926652

+0

@ user926652, nó không hoạt động trên MySQL 5.1.x, nhưng nó có trên MySQL 6 - Đó là tất cả những gì tôi có thể nói. Cho dù bạn nên nâng cấp, tôi không thể nói. Nó dường như đang ở giai đoạn phát triển ban đầu, vì vậy nó có thể không phải là một ý tưởng hay - nhưng nó sẽ giải quyết vấn đề _this_. – kba

Các vấn đề liên quan