Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQL空常量值_Android_Sql_Cursor_Android Contentresolver - Fatal编程技术网

Android SQL空常量值

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);

我有这个线索给你

我们正在尝试将参数传递给内容解析器中的查询。如果参数为NULL,我们希望获取所有行,或者获取参数处指示的特定值,反之亦然

我们使用的方法声明:

    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);