私は次のようなテーブルとレコードを持っています:
EmployeeName
------------
Ram
Laxman
Bharat
Shatrugn
ここで、1つのクエリで1つの行のすべての値を連結するために出力したい場合:
次のような結果が必要です。
Ram,Laxman,bharat,shatrugn
単一行の(コンマ)と文字列を連結します。しかし、カーソルを使用してAndroidで連結する方法がわかりません。
SQLite では、以下を使用できますGROUP_CONCAT()
。
select Group_Concat(EmployeeName)
from table1
デモで SQL Fiddle を参照してください
返したいフィールドが複数ある場合は、次GROUP BY
のようにクエリで a を使用します。
select id, Group_Concat(EmployeeName)
from table1
group by id
デモで SQL Fiddle を参照してください
String values;
if (cursor.moveToFirst()) {
do {
values=values + cursor.getString(0)+",";
} while (cursor.moveToNext());
最後のコンマを削除
if (values.length() > 0)
{
values= values.substring(0,values.length() - 1);
}
これが私が使用したコードです...お役に立てば幸いです。
private SQLiteDatabase myDataBase;
Cursor cursor;
String S="";
String myPath2 = yourDBpath + yourDBNAME;
try{
myDataBase = SQLiteDatabase.openDatabase(myPath2, null,SQLiteDatabase.OPEN_READWRITE);
String sql="your query";
cursor=myDataBase.rawQuery(sql, null);
if(cursor != null)
{
while(cursor.moveToNext())
{
S=S.append(cursor.getString(0));
}
}
}
}catch(Exception e){
}finally{
myDataBase.close();
}
最終結果は String S にあります。