memesan berdasarkan kolom menurut bahasa Ibrani daripada bahasa Inggris dalam kueri mysql

tabel saya berisi kolom item_name yang memiliki nilai contoh berikut:

abba, babba, ארץ, חלב, כלב

itu adalah nilai-nilai bahasa inggris dan nilai-nilai ibrani. Saya memerlukan kueri mysql yang akan memberi saya hasil yang diurutkan berdasarkan nilai ibrani terlebih dahulu (diurutkan berdasarkan alfabet ibrani) - kemudian nilai bahasa Inggris (diurutkan berdasarkan alfabet bahasa Inggris).

inilah yang saya gunakan sekarang:

select id, item_name order by item_name

dan itu memberi saya nilai bahasa Inggris terlebih dahulu.

menggunakan UNION adalah kemungkinan menggunakan REGEXP...


person john_black    schedule 17.02.2015    source sumber
comment
Apakah senarnya selalu berbahasa Inggris atau Ibrani - jadi tidak pernah ada campuran keduanya? Mungkin membantu untuk memposting sqlfiddle - dengan asumsi itu dapat memerlukan karakter multibyte.   -  person Strawberry    schedule 17.02.2015
comment
cukup gunakan ORDER BY item_name dan tambahkan DESC atau ASC. DESC seharusnya memberi Anda bahasa Ibrani terlebih dahulu. Saya harus mencatat bahwa tidak disarankan untuk meletakkan nilai Ibrani dan Inggris di kolom yang sama. itu saja   -  person No Idea For Name    schedule 17.02.2015


Jawaban (2)


Anda dapat menggunakan pesanan DESC atau ASC. Coba dengan pilih id, nama_item diurutkan berdasarkan nama_item DESC pilih id, nama_item diurutkan berdasarkan nama_item ASC

person nikolay    schedule 17.02.2015
comment
tidak, menambahkan DESC atau ASC tidak akan berhasil. itu akan mendapatkan bahasa ibrani terlebih dahulu tetapi seperti yang saya sebutkan saya perlu bahasa ibrani diurutkan berdasarkan abjad. dan setelah diurutkan berdasarkan abjad saya perlu yang bahasa Inggris diurutkan berdasarkan abjad. menambahkan ASC atau DESC hanya membalikkan urutan awal. - person john_black; 17.02.2015

Istilah yang Anda cari adalah collation. Pengumpulan adalah properti yang menentukan urutan pengurutan. Seperti yang telah Anda temukan, pengumpulan yang dikirimkan MySQL dengan semua jenis karakter ASCII sebelum karakter non-ASCII. Satu-satunya cara untuk mengatasinya adalah dengan membuat susunan Anda sendiri, yang bukan merupakan pekerjaan sepele.

Selain itu, berbeda dengan komentar yang diposting, sama sekali tidak ada masalah dalam menyimpan nilai Ibrani dan Inggris di bidang yang sama. Tentu saja saya menyarankan untuk menyimpan data sebagai UTF-8 dalam kasus tersebut.

person dotancohen    schedule 10.04.2015