2012-05-05 11 views
25

私のアプリケーションにはsqlite DBがあり、一部のフィールドはnullまたは空です(つまり、フィールドに何も挿入していないことを意味します)。Android sqlite - フィールドがnullまたは空であるレコードを選択します。

フィールドが空または空のすべてのレコードを選択したいとします。

は、これは私が試したものです:

cursor = db.query(DBHelper.TABLE_NAME, COLUMNS, "folder_name = ? ", new String[] {"null"}, null, null, DBHelper.TIMESTAMP_COL + " DESC"); 

しかし、それは動作しませんでした、と私はすべてのレコードを取得できませんでした。私はこの仕事をするために何をする必要がありますか?

答えて

58

は、あなたがあなたの答えで詳細を提供する必要があります

cursor = db.query(DBHelper.TABLE_NAME, COLUMNS, "folder_name is null or folder_name = ?", new String[] {""}, null, null, DBHelper.TIMESTAMP_COL + " DESC"); 
+2

パーフェクト、10X :)私はすぐに答えを受け入れるでしょう。 –

+0

"folder_name = <空文字列>"が本当に必要か不十分かを明確にする答えはありません。 IS NULLと空の文字列チェックを同時に使用するのは唯一のものなので、なぜダブルチェック(またはそれが予防だったのか)を明確にすることができますか? – leRobot

+0

問題は、 'folder_name'が' null'または空であるレコードを選択する方法でした。私は、 'empty'は'空文字列 'の省略形であると仮定します。もし私が間違っていたら、私はまだ予防空の文字列チェックを提案するでしょう。 – Rayne

2

ただ、 "フォルダ名がnull" を使用

+4

を試してみてください。これは、OPがあなたがその意味を理解していることを前提としています。あなたの答えを高品質にするための例を追加することを検討してください。 – jmort253

10
db.rawQuery("SELECT * FROM myTable WHERE myColumn IS NULL", null); 
関連する問題