1
Androidコンテンツプロバイダのsqliteセレクションでビット単位の操作を実行できますか?Androidコンテンツプロバイダーのsqliteビット単位操作の選択
データベースからデータをロードするためのカーソルローダーを作成しましたが、結果は返されません。戻ってくるカーソルの数はゼロです。
new CursorLoader(getActivity(), Person.PERSON_CONTENT_URI,
Person.FULL_PROJECTION,
"(" + Person.FLAG + " & 2) = ?",
new String[]{
String.valueOf(2)
},
Person.USER_NAME + " asc");
sqlite
ビット単位の選択操作をサポートしています。以下は、PCのコマンドラインでテストされた例です。
$ sqlite3 test.db
SQLite version 3.8.5 2014-08-15 22:37:57
Enter ".help" for usage hints.
sqlite> create table person(name text, flag integer);
sqlite> insert into person values('a', 1), ('b', 2), ('c', 4), ('d', 8);
sqlite> select * from person where (flag & 4) == 4;
c|4
なぜAndroidでの実装ではサポートされていないのですか?
Androidでsqliteの選択句でビット単位の操作を実行するにはどうすればよいですか?
あなたは、テキストの右辺のオペランドを扱っています。選択argsに 'null'を渡し、選択中の'? 'を' 2'に置き換えます –