关于几个 空值 的查询示例

最后更新: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等效

首页 最近更新 搜索 提交 回复