用mysql 在当天时间生成订单流水号
可以使用以下SQL语句在MySQL中生成当天的订单流水号:
SELECT CONCAT('ORDER-', DATE_FORMAT(NOW(), '%Y%m%d'), '-', LPAD(COALESCE(MAX(SUBSTRING(order_number, 11)), 0) + 1, 4, '0')) AS order_number FROM orders WHERE order_number LIKE CONCAT('ORDER-', DATE_FORMAT(NOW(), '%Y%m%d'), '%');
这个SQL语句将生成一个类似于“ORDER-20210318-0001”的订单流水号。具体实现过程如下:
-
使用CONCAT函数将“ORDER-”和当天日期(格式为“%Y%m%d”)连接起来。
-
使用DATE_FORMAT函数获取当前时间的日期部分,并将其格式化为“%Y%m%d”。
-
使用LPAD函数将订单数量增加到4位数,用“0”填充左侧不足的位数。
-
使用COALESCE函数获取之前生成的最大订单号(使用SUBSTRING函数截取订单号的最后4位数),如果没有先前的订单,则为0。
-
将ORDER-日期-订单数量连接在一起,生成新的订单流水号。
-
在orders表中查找所有以“ORDER-日期”开头的订单号,并将其传递给LIKE操作符。
-
将结果作为order_number返回。
原文地址: https://www.cveoy.top/t/topic/bIMc 著作权归作者所有。请勿转载和采集!