0

テーブルからいくつかの列を選択する必要があります。特定の列(私の場合はpos_report_id)は空であり、nullではありません。SQLiteDatabaseBrowser(user_id = '23'の場合)でこのコードを試しましたが、正常に機能します。

"SELECT information_action.target_type, information_action.message_type,"
                + "information_action.start_date, information_action.end_date, information_action.content, information_action.status "
                + "FROM information_action INNER JOIN information_to_user ON "
                + "information_to_user.information_action_id = information_action.id_information_action "
                + "WHERE information_action.pos_report_id ='' AND information_to_user.user_id ='"
                + user_id + "'";

しかし、コードでは、アプリを実行すると次のエラーが発生します:

ERROR   AndroidRuntime  Caused by: android.database.sqlite.SQLiteException: near "": syntax error: , while compiling: SELECT information_action.target_type, information_action.message_type,information_action.start_date, information_action.end_date, information_action.content, information_action.status FROM information_action INNER JOIN information_to_user ON information_to_user.information_action_id = information_action.id_information_action WHERE information_action.pos_report_id ='' AND information_to_user.user_id ='23'

これを解決する方法はありますか?なぜそれは''で大丈夫ではないのですか?

4

2 に答える 2

0

user_idはデータベースのcharフィールドですか?整数のようです。この権利がある場合は、23から''を削除します。

于 2012-10-08T08:59:25.330 に答える
0

クエリでは、WHEREandON句の両方を使用しました。WHERE を使用する AND の代わりに、この 1 つの小さな変更を試してください。

"SELECT information_action.target_type, information_action.message_type,"
                + "information_action.start_date, information_action.end_date, information_action.content, information_action.status "
                + "FROM information_action INNER JOIN information_to_user ON "
                + "information_to_user.information_action_id = information_action.id_information_action "
                + "AND information_action.pos_report_id ='' AND information_to_user.user_id ='"
                + user_id + "'";
于 2012-10-08T09:10:55.270 に答える