经典MYSQL语句记录
订单号规则
SELECT concat(date_format(NOW(),'%Y%m%d'),IFNULL(max(SUBSTR(ORDER_ID FROM 9 FOR 8) +0)+1, 10000000)) FROM fx_order201709;
SUBSTR(ORDER_ID FROM 9 FOR 8) 表示从订单号的第9位开始截取8个长度
max(SUBSTR(ORDER_ID FROM 9 FOR 8) +0) 表示获取最大的值
IFNULL(max(SUBSTR(ORDER_ID FROM 9 FOR 8) +0)+1, 10000000)如果为NULL默认为10000000,否则为最大的值+1
concat()是将字符串连接起来,如果有为NULL的话返回NULL。
concat_ws()是将为NULL的字符串过滤掉。
------------------------------------------------------
所以分两步: