标签:bsp 数据库 分页 新建 span type 算法 建表 一个
目前一个订单需要加一个异常的状态,但是一个订单可能存在多种状态,又要满足平常的分页查询;例如,目前的异常状态有:断货、断码、库存异常、超期。一个订单可能存在多种转态。
/** * 异常类型 1.断货 2.断码 3.库存异常 4.超期 */ NORMAL(0, "正常"), OUT_STOCK(2, "断货"), BROKEN_CODE(4, "断码"), STOCK_EXCEPTION(8, "库存异常"), OVER_DATE(16, "超期"),
那如果存在多种状态怎么表示呢? 比如一个订单是断货,又是断码,那么我们数据库存的就是6 。同理可得,如果存的是14,那这个单是断码、断货和库存异常。
其实我们可以发现,2|4=6,2|4|8=12,也可以看成 2+4=6,2+4+8=12. 那么在数据库里,我们可以根据 2&6 =2, 4&6=4 的特性去查询。 对应的sql语句为:
select * from table as t where #{exceptionType}=#{exceptionType}&t.exception_type and exception_type !=0;
对于存储在ES上,我没有找到ES上的与操作,可以用回溯算法将值解析,用数组的方式存储,然后查询。
标签:bsp 数据库 分页 新建 span type 算法 建表 一个
原文地址:https://www.cnblogs.com/xiaofeng-fu/p/14920023.html