关于几个 空值 的查询示例
最后更新:2024-09-03 17:40:16
|
状态:未完成
//service.query("crm_user", "+id:null"); // ID IS NULL
//service.query("crm_user", "+id:"); // ID IS NULL
//以上两种情况 经常是通过变量拼接出来如 "+id:"+value
//ConfigStore.and方法中提供了EMPTY_VALUE_SWITCH用来决定空值(null和'')时的处理方式,默认IGNORE
//如果已经明确了空值的情况可以直接写 configs.and("ID IS NULL").and("CODE = ''")
/*
IGNORE //忽略当前条件 其他条件继续执行
, BREAK //中断执行 整个命令不执行
, NULL //生成 WHERE ID IS NULL
, SRC //原样处理 会生成 WHERE ID = NULL
, NONE //根据条件判断 ++或+
*/
ConfigStore configs = new DefaultConfigStore();
//默认忽略空值
configs.and("I0", null); // 忽略
configs.and("I1", ""); // 忽略
configs.and("I2", "".split(",")); // 忽略
configs.and("I3", new ArrayList<>()); // 忽略
configs.and("I4", new String[]{}); // 忽略
// +表示必须条件 无论什么值 添加到查询条件中
configs.and("+K0", null); // K0 IS NULL
configs.and("+K1", ""); // K1 IS NULL
configs.and("+K2", "".split(",")); // K2 IS NULL
configs.and("+K3", new ArrayList<>()); // K3 IS NULL
configs.and("+K4", new String[]{}); // K4 IS NULL
//EMPTY_VALUE_SWITCH.NULL 与 +key 等效
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N0", null); // N1 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N1", ""); // N2 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N2", "".split(",")); // N3 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N3", new ArrayList<>()); // N4 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N4", new String[]{}); // N5 IS NULL
// EMPTY_VALUE_SWITCH.SRC 与EMPTY_VALUE_SWITCH.NULL的区别
// EMPTY_VALUE_SWITCH.NULL会把空值转换成null,
// EMPTY_VALUE_SWITCH.SRC会把空值原样保留
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S0", null); // S0 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S1", ""); // S1 = ''
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S2", "".split(",")); // S2 = ''
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S3", new ArrayList<>()); // S3 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S4", new String[]{}); // S4 SI NULL
// ++ 表示 必须条件 并且 必须有值,如果没有值会中断整个SQL执行 EMPTY_VALUE_SWITCH.BREAK等效
//service.query("crm_user", "+id:"); // ID IS NULL
//以上两种情况 经常是通过变量拼接出来如 "+id:"+value
//ConfigStore.and方法中提供了EMPTY_VALUE_SWITCH用来决定空值(null和'')时的处理方式,默认IGNORE
//如果已经明确了空值的情况可以直接写 configs.and("ID IS NULL").and("CODE = ''")
/*
IGNORE //忽略当前条件 其他条件继续执行
, BREAK //中断执行 整个命令不执行
, NULL //生成 WHERE ID IS NULL
, SRC //原样处理 会生成 WHERE ID = NULL
, NONE //根据条件判断 ++或+
*/
ConfigStore configs = new DefaultConfigStore();
//默认忽略空值
configs.and("I0", null); // 忽略
configs.and("I1", ""); // 忽略
configs.and("I2", "".split(",")); // 忽略
configs.and("I3", new ArrayList<>()); // 忽略
configs.and("I4", new String[]{}); // 忽略
// +表示必须条件 无论什么值 添加到查询条件中
configs.and("+K0", null); // K0 IS NULL
configs.and("+K1", ""); // K1 IS NULL
configs.and("+K2", "".split(",")); // K2 IS NULL
configs.and("+K3", new ArrayList<>()); // K3 IS NULL
configs.and("+K4", new String[]{}); // K4 IS NULL
//EMPTY_VALUE_SWITCH.NULL 与 +key 等效
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N0", null); // N1 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N1", ""); // N2 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N2", "".split(",")); // N3 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N3", new ArrayList<>()); // N4 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.NULL, "N4", new String[]{}); // N5 IS NULL
// EMPTY_VALUE_SWITCH.SRC 与EMPTY_VALUE_SWITCH.NULL的区别
// EMPTY_VALUE_SWITCH.NULL会把空值转换成null,
// EMPTY_VALUE_SWITCH.SRC会把空值原样保留
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S0", null); // S0 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S1", ""); // S1 = ''
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S2", "".split(",")); // S2 = ''
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S3", new ArrayList<>()); // S3 IS NULL
configs.and(Compare.EMPTY_VALUE_SWITCH.SRC, "S4", new String[]{}); // S4 SI NULL
// ++ 表示 必须条件 并且 必须有值,如果没有值会中断整个SQL执行 EMPTY_VALUE_SWITCH.BREAK等效