【发布时间】:2018-10-09 07:34:55
【问题描述】:
在 Android SQLite 中,我有一个表:TABLE_AGEING_VALUES_ALL
Loan_No text primary key,
agreement_date date,
branch_name text,
loan_status text,
address1 text,
address2 text,
status_type integer,
user_id integer
并考虑以下 SQLite 查询:
"SELECT COUNT(Loan_No) FROM " + TABLE_AGEING_VALUES_ALL + " WHERE user_id = \"" + user_id + "\" AND Loan_No = \"" + Loan_No + "\" AND status_type = " + status_type
当我想要 status_type variable = ANYTHING 时,我可以简单地调用:
"SELECT COUNT(Loan_No) FROM " + TABLE_AGEING_VALUES_ALL + " WHERE user_id = \"" + user_id + "\" AND Loan_No = \"" + Loan_No + "\""
但是由于我是从 Java 函数调用中将值传递给 status_type 变量,所以我不能像那样简单地删除该列。
那么,当我想要 status_type 变量 = ANYTHING 时,从 Java 函数调用将值传递给 status_type 变量的最有效方法是什么?
例如,那个
"SELECT COUNT(Loan_No) FROM " + TABLE_AGEING_VALUES_ALL + " WHERE user_id = \"" + user_id + "\" AND Loan_No = \"" + Loan_No + "\" AND status_type = *"
根本没用。
我已经在 Stack Overflow 中搜索了它最相关的足够解决方案,已经足够合适了:
我得到了类似的东西,例如:
"SELECT COUNT(Loan_No) FROM " + TABLE_AGEING_VALUES_ALL + " WHERE user_id = \"" + user_id + "\" AND Loan_No = \"" + Loan_No + "\" AND status_type = status_type"
但是对于这个问题有没有足够具体的解决方案来处理它?
我同意"status_type = status_type" 将始终返回1,只要它是任何给定的变量,但只要它们已经是同一列的任何给定的两个足够不同的值,它也会这样做吗?
【问题讨论】:
-
您想选择 status_type 不为空的位置是否正确?
-
是的,只要
status_type变量也不为空,您就可以回答如何操作。在我的真实案例中,status_type变量可以从 3 个不同值中的 1 个中取值,-1 表示待处理片段,1 表示计划片段,3 表示已完成片段。对于所有片段,status_type 可以是我上面提到的 3 个不同值中的任何值。 -
我也可以做到
"SELECT COUNT(Loan_No) FROM " + TABLE_AGEING_VALUES_ALL + " WHERE user_id = \"" + user_id + "\" AND Loan_No = \"" + Loan_No + "\" AND (status_type = -1 OR status_type = 1 OR status_type = 3)"。但是,当status_type的所有可能值有很多不同的选择或者它们有无限多个时,情况如何? -
您实际上可以检查
AND status_type NOT NULL
标签: android sql sqlite select android-sqlite