如何从我的数据库列返回第一个charc?
解释:我的问题很详细,我有像
这样的记录集苹果
爱丽丝
蝙蝠
浴
猫
它将继续如何从该列返回第一个charc。我已尝试使用子字符串进行不同的查询,但它抛出无法读取行如何解决此问题需要获得第一个字符,如 a,b,c .. 让我发布我到目前为止所尝试的内容:
public List<AccountModel> Header(){
String countQuery ="select DISTINCT lower(substr("+AccountModel.acc_companyname+",1,1)) as char from "+AccountModel.acc_table +" ";
Cursor cursor = db.rawQuery(countQuery, null);
List<AccountModel>list=new ArrayList<>();
if(cursor!=null && cursor.getCount()>0){
if(cursor.moveToFirst()){
do{
AccountModel accountModel=new AccountModel();
accountModel.setCompanyName(cursor.getString(cursor.getColumnIndex(AccountModel.acc_companyname)));
list.add(accountModel);
}while (cursor.moveToNext());
}
}
if(cursor!=null){
cursor.setNotificationUri(mcontext.getContentResolver(), DB_Account);
}
return list;
}
如何使用distinct和substring从我的记录中获取第一个charc,并且需要在列表中设置它提前感谢
答案 0 :(得分:2)
像这样更新你的Header方法:
public Cursor Header(){
String countQuery = "select DISTINCT lower(substr("+AccountModel.acc_companyname+",1,1)) as inital_char from "+AccountModel.acc_table +" ";
Cursor cursor = db.rawQuery(countQuery, null);
return cursor;
}
问题在你的substr方法中。
原始查询是:
SELECT DISTINCT(SUBSTR(name, 1, 1)) AS indexChar
FROM myTable
ORDER BY indexChar
快乐编码!!!!