スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AndroidのSQLiteで部分一致している文字列を検索

AndroidでSQLiteを使うようなアプリを作成していて、
「Android SQLite」でぐぐっても
基本的な「検索」「挿入」「更新」「削除」あたりの
ざっくりした方法しか見つけられないので、
補足的な感じで、部分一致している文字列の検索とか
検索条件の詳しい書き方の調べ方をメモっておきます。

どうにも改行が下手です。

【部分一致している文字列の検索】

SQLで言う(SQL分からないけど)「LIKE句」と
ワイルドカードである「%」を使うらしいです。
たとえば、

cursor = mydb.query("my_table", null, "name like ?", new String[]{"%"+ "検索対象文字列" +"%"}, null, null, null);

ってしてやると、
nameっていうフィールドにある各文字列から
「検索対象文字列」を含む文字列を検索してくれる。
mydbっていうのはSQLiteDatabaseのインスタンスで
my_tableはテーブル名。


【検索条件の詳しい書き方の調べ方】
SQLiteってAndroidに独特なものではないから、
素直に「SQLite」でぐぐる。もしくは「SQL」。
すると

select * from customer where address = '東京';

って感じの全然文法の違う文がでてくるけど、この検索条件はAndroid版の

cursor = mydb.query("customer", null, "address = ?", new String[]{"東京"}, null, null, null);

と大体同じ意味。
というのも、内部での動作なんて調べてないから分からないけど、
たぶん、mydb.queryってしたときAndroid側で

select 第2引数 from 第1引数 where 第3引数と第4引数

という文を作ってSQLite側に投げてくれてるってイメージでいいと思います。
(第3引数の?に第4変数で指定した文字列の配列から順に文字列が入ります)
(Cのprintfに近いものを感じた……)
第5引数とかも指定すればgroup by句とかとして文に入ってくるはず。
それがわかってれば、
http://www.dbonline.jp/sqlite/select/
こういうSQLiteの解説サイトを読み替えできるので
欲しい情報は得やすくなると思います。

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。