2012-02-22 1 views
0

私はこれが正常に動作しますが、私はアンドロイドのsqliteは、1と2の間のcolumn1とpersonのようなcolumn2のどちらをクエリしていないのですか?

db.rawQuery("SELECT* FROM "+TABLE+" WHERE "+COLUMN1+" BETWEEN ('1') AND ('2') "+ 
"AND "+COLUMN2+" LIKE ('PERSONSNAME')", null); 

に切り替えたときに、私のデータベースは、私の選択を照会しません

db.rawQuery("SELECT* FROM "+TABLE+" WHERE "+COLUMN1+" BETWEEN ('1') AND ('2')", null); 

で働いていた私のデータベースを持っています。しかし、私がそれを変更すると

db.rawQuery("SELECT* FROM "+TABLE+" WHERE "+COLUMN1+" LIKE ('1') AND "+ 
COLUMN2+ " LIKE ('PERSONNAME')", null); 

それが動作します。私の問題が何であるか教えてくれますか?

+0

を探していた結果を与えたCOLUMN1とCOLUMN2は、どのようなデータ型を持っていますか? – m1ntf4n

+0

タイプミスがあります。2番目のクエリでは、3番目のPERSONNAMEのPERSONSNAMEです。多分それは問題ですか? – m1ntf4n

+0

私はこのような問題をデバッグするために[SQLite Browser](http://sqlitebrowser.sourceforge.net/index.html)を使用してきました。データベースファイルをエクスポートし、そのツールで開くと、それに応じてクエリを微調整できます。 – Woodsy

答えて

0

解決策を見つけました。方法

db.rawQuery("SELECT* FROM "+TABLE+" WHERE "+COLUMN1+" BETWEEN ('1') AND ('2') "+ 
"AND "+COLUMN2+" LIKE ('PERSONSNAME')", null); 

うまくいかなかった。しかし、すぐに私は<へBETWEEN文を変更して=と> =クエリは私に私が

db.rawQuery("SELECT* FROM "+TABLE+" WHERE "+COLUMN1+" <= ('1') AND "+COLUMN1+" >= ('2') "+ 
"AND "+COLUMN2+" LIKE ('PERSONSNAME')", null); 
関連する問題