Tôi có một truy vấn cho cơ sở dữ liệu sqlite3 cung cấp dữ liệu được sắp xếp. Dữ liệu được sắp xếp trên cơ sở cột là một cột "varchar
". Bây giờ, khi tôi thực hiện truy vấnLàm thế nào để thay đổi collation của sqlite3 cơ sở dữ liệu để sắp xếp trường hợp insensitively?
select * from tableNames Order by Name;
Nó cung cấp dữ liệu như thế này.
Pen Stapler pencil
Có nghĩa là nó đang xem xét các trường hợp nhạy cảm. Cách tôi muốn là như sau
Pen pencil Stapler
Vì vậy, những thay đổi nào tôi nên thực hiện trong cơ sở dữ liệu sqlite3 cho các kết quả cần thiết?
liên quan How to set Sqlite3 to be case insensitive when string comparing?
"COLLATE NOCASE" có hoạt động cho bất kỳ ngôn ngữ nào không? Nếu không, làm thế nào có thể sắp xếp trên một trường văn bản trong một trường hợp không nhạy cảm, nếu ngôn ngữ cụ thể không được biết đến tại thời gian biên dịch? –
IIRC sqlite3 là nguyên bản UTF-8, do đó việc đối chiếu sẽ xảy ra theo các quy tắc Unicode UTF-8. Điều này có thể, tất nhiên, không phải là những gì người dùng mong đợi ... –
@moodforaday: Không phải với việc xây dựng trong NOCASE collation. Những gì bạn có thể là để xác định lại collate NOCASE trong ứng dụng của bạn và thực hiện phân loại dựa trên hệ thống hiện tại/người dùng miền địa phương. Chỉ cần đặt tên cho collation tùy chỉnh của bạn là "NOCASE". – wqw