0
有沒有什麼方法可以按區分大小寫字母順序排列數據集而不區分大小寫?我發現「COLLATE LOCALIZED」,「COLLATE NOCASE」,但「COLLATE LOCALIZED NOCASE」顯示錯誤(也按相反順序)。Android SQLite ORDER BY COLLATE「NOCASE」和「LOCALIZED」在一起
感謝您的任何迴應!
有沒有什麼方法可以按區分大小寫字母順序排列數據集而不區分大小寫?我發現「COLLATE LOCALIZED」,「COLLATE NOCASE」,但「COLLATE LOCALIZED NOCASE」顯示錯誤(也按相反順序)。Android SQLite ORDER BY COLLATE「NOCASE」和「LOCALIZED」在一起
感謝您的任何迴應!
我沒有找到任何簡單的方法。我創建了額外的排序表列,其中包含規範化數據(記錄爲here)。創建常數規範化表列名前綴:
public static final String ASCII_PREFIX = "ascii_";
創建的表(文字列創建前綴一個多列):
String sql = "CREATE TABLE IF NOT EXISTS " + tableName + " (";
for(columnModel column: table.columns) {
if(column.position > 0){ sql += ", "; }
sql += column.dbName + " " + column.dbType;
}
for(columnModel column: table.columns) {
if(column.dbType.equals("TEXT")) {
sql += ", " + ASCII_PREFIX + column.dbName + " " + column.dbType;
}
}
sql += ")";
db.execSQL(sql);
改變表中的數據填充(添加特殊列標準化數據):
//...cycle for data filling...
ContentValues values = new ContentValues();
for(columnModel column: table.columns) {
values.put(column.dbName, valueStr);
if(column.dbType.equals("TEXT")){
values.put(ASCII_PREFIX + column.dbName, normalize(valueStr));
}
}
db.insert(tableName, null, values);
,然後我有點或者文本列:
//... in method for sorting...
String orderBy;
....
if(column.dbType.equals("TEXT")) {
orderBy = ASCII_PREFIX + column.dbName;
}else {
orderBy = column.dbName;
}