Android 选择字段为空的记录
我需要从表中选择一些列,其中某一列(在我的例子中是pos_report_id)为空,而不是null。我在SQLiteDatabaseBrowser(针对用户_id='23')中尝试了这段代码,效果很好:Android 选择字段为空的记录,android,sqlite,is-empty,Android,Sqlite,Is Empty,我需要从表中选择一些列,其中某一列(在我的例子中是pos_report_id)为空,而不是null。我在SQLiteDatabaseBrowser(针对用户_id='23')中尝试了这段代码,效果很好: "SELECT information_action.target_type, information_action.message_type," + "information_action.start_date, information_action.end_d
"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'
你知道怎么解决这个问题吗?为什么对“”不合适?用户id是数据库中的字符字段吗?似乎是一个整数。如果此权限从23中删除“”。在查询中,您同时使用了
WHERE
和ON
子句。尝试这一项只是一个小小的改变,而不是在何处使用和:
"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 + "'";
问题不在于用户id,而在于pos报告id。我必须检查pos报告id是否为空。