可以使用以下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”的订单流水号。具体实现过程如下:

  1. 使用CONCAT函数将“ORDER-”和当天日期(格式为“%Y%m%d”)连接起来。

  2. 使用DATE_FORMAT函数获取当前时间的日期部分,并将其格式化为“%Y%m%d”。

  3. 使用LPAD函数将订单数量增加到4位数,用“0”填充左侧不足的位数。

  4. 使用COALESCE函数获取之前生成的最大订单号(使用SUBSTRING函数截取订单号的最后4位数),如果没有先前的订单,则为0。

  5. 将ORDER-日期-订单数量连接在一起,生成新的订单流水号。

  6. 在orders表中查找所有以“ORDER-日期”开头的订单号,并将其传递给LIKE操作符。

  7. 将结果作为order_number返回。

用mysql 在当天时间生成订单流水号

原文地址: https://www.cveoy.top/t/topic/bIMc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录