delimiter $$
use `ppd-sit`$$
drop procedure if exists `createorderno`$$
create definer=`root`@`%` procedure `createorderno`(out `neworderno` char(15))
begin
declare currentdate char (8) ;-- 定義currentdate為當前日期,格式為:年+月+日
declare maxno int default 0 ; -- 定義maxno為離現在最近的滿足條件的訂單編號的流水號最後5位,如:2018042600002的maxno=2
declare oldorderno char (15) default '' ;-- 定義oldorderno為離現在最近的訂單編號,預設為空
declare neworderno char (15) default '' ;-- 定義neworderno為新生成的訂單編號,預設為空
select date_format(now(), '%y%m%d') into currentdate ;-- 當前日期 訂單編號形式:年月日+流水號,如:2018042600002
/* 從test_orders表中查出最新一條記錄賦值給oldorderno */
select ifnull(order_no, '') into oldorderno -- ifnull(expr1,expr2),接收兩個引數,如果不是null,則返回第乙個,如果是null,返回第二個
from course_order
where to_days(create_time) = to_days(now())
order by id desc limit 1 ; -- 有多條時只顯示離現在最近的一條
if oldorderno != '' then
set maxno = convert(substring(oldorderno, -5), decimal) ;-- substring(oldorderno, -5):訂單編號如果不為『『擷取訂單的最後5位
end if ;
select
concat('od',currentdate, lpad((maxno + 1), 5, '0')) into neworderno ; -- lpad((maxno + 1), 5, '0'):如果不足5位,將用0填充左邊
select neworderno;
end$$
delimiter ;
訂單號生成
之前用uuid 因為太長改用16位因此在網上找到一下這種做法,年月日擷取 時間戳 在加隨機數 生成乙個訂單 獲取年份 var date j f c d e b h i a date gettime tostring var ordersn date new date getfullyear 2015...
PHP訂單號的生成
前陣子,公司有個電子商務專案,需要生成訂單號。當時的考慮很簡單,取系統時間加上隨機數,或者使用 uniqid 方法。我們都知道,訂單號最基本的要求就是唯一,這個條件必須滿足。仔細考慮下上述方法,在顧客購買量少的情況下,訂單重複的可能性為零,但是在購買高蜂期生成的訂單號重複是很有可能發生的。所以上述方...
redis 生成訂單號學習
題目是生成明天的訂單號,刪除昨天的訂單號,在redis操作,訂單號暫定規則為年月日接五位數。如2018102200001 當乙個訂單生成的時候,去redis去取訂單號,去玩後刪掉。這個取和刪除操作是乙個命令發過去的。不能寫成兩個語句。redis五種結構詳解 redis五種結構詳解 redis設定li...