我有变量,每个变量都有可能是空的。我用这些来创建我的论点:
String[] arguments = {argClassOfExercise, argPeriodOfPeriodisation, argAgeGroup, argPrDistanceGroup, argVo2Max};
并定义我使用的WHERE CLAUSE
String selection = "catalog.ex_class = ? AND catalog.period = ? AND catalog.age_group = ? AND catalog.pr_comp_grouping = ? AND catalog.vo2max = ?";
将它全部放在我的cursorloader中:
CursorLoader cursorLoader = new CursorLoader(getActivity(), CatalogProvider.CONTENT_URI_TRANSLATION, projection, selection, arguments, null);
现在这一切都可以正常工作,直到其中一个变量为空。由于没有数据库值等于和空字符串。如果该特定变量为空,是否有可能排除WHERE CLAUSE?
我知道你可以写一堆IF语句,但这会导致我写出其中的11条,而且我认为这并不是真的有效。
欢迎任何想法
答案 0 :(得分:0)
可以使用像(ex_class = ?1 OR ?1 = '') AND ...
这样的SQL表达式,但效率非常低。
您应该动态构造SQL选择字符串和参数数组,并且只留下空格字符串的任何条目。