Android SQL空常量值
我有这个线索给你 我们正在尝试将参数传递给内容解析器中的查询。如果参数为NULL,我们希望获取所有行,或者获取参数处指示的特定值,反之亦然 我们使用的方法声明:Android SQL空常量值,android,sql,cursor,android-contentresolver,Android,Sql,Cursor,Android Contentresolver,我有这个线索给你 我们正在尝试将参数传递给内容解析器中的查询。如果参数为NULL,我们希望获取所有行,或者获取参数处指示的特定值,反之亦然 我们使用的方法声明: static String allArtists = ""; //// Some code ... Vector<String> discs = new Vector<String>(); discs = getDiscs(allArtists);
static String allArtists = "";
////
Some code
...
Vector<String> discs = new Vector<String>();
discs = getDiscs(allArtists);
////
public Vector<String> getDiscs(String artistName){
为了使此方法可重用,我们将artistName作为参数传递,因为我们希望选择所有行,所以传递常量allArtists
关键是这个查询不返回任何行,因为常量allArtists=“”并不像我们预期的那样充当空值
最后一个问题是:我必须如何声明常量,使查询将其作为空值而不是“”
非常感谢。将空字符串转换为空字符串
String selectionQuery = "? = nullif(?,'''')";
我们通过以下方式解决了选择问题:
String[] queryColumns = { MediaStore.Audio.Albums._ID,
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ARTIST };
String selectionQuery = "( nullif('" + artistName + "','') ISNULL )" +
" OR (" + MediaStore.Audio.Albums.ARTIST + " == '" + artistName + "' )";
String sortOrderClause = MediaStore.Audio.Albums.ALBUM + " ASC";
Cursor queryRes = contRes.query(discsUri,
queryColumns,
selectionQuery,
null,
sortOrderClause);
希望这对其他人有帮助。
你好
String[] queryColumns = { MediaStore.Audio.Albums._ID,
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ARTIST };
String selectionQuery = "( nullif('" + artistName + "','') ISNULL )" +
" OR (" + MediaStore.Audio.Albums.ARTIST + " == '" + artistName + "' )";
String sortOrderClause = MediaStore.Audio.Albums.ALBUM + " ASC";
Cursor queryRes = contRes.query(discsUri,
queryColumns,
selectionQuery,
null,
sortOrderClause);