我有一个带有invoice_no列的表格发票,并且我想使用以下规则保存一个特定的数字:YEAR /month/day/(Invoice_number)
从1迭代到...对于第二天,迭代又从头开始。
例如:
Y-M-D1-(1)
Y-M-D1-(2)
Y-M-D1-(3)
#For next day
Y-M-D2-(1)
Y-M-D2-(2)
Y-M-D2-(3)
谢谢。
答案 0 :(得分:0)
您可以计算当天创建的所有发票。您可以使用简单的查询来完成此操作:SELECT count(*) AS cnt FROM invoices WHERE date(created_at) = curdate()
这样,您可以生成如下的ID:date(Ymd).$cnt+1)
。
答案 1 :(得分:0)
选择最高的数字(使用MAX()
)-您可以结合使用TRIM()
和SUBSTR()
来过滤其他数据-因为您知道日期格式始终为13字符长(2019-05-20-
的长度为13)。然后剩下一些数字和右括号,可以TRIM()
移走。
使用LIKE
过滤日期,并在末尾加上通配符%
(表示字符串以给定值开头)。
鉴于该日期之前没有条目时它将返回NULL
,请使用COALESCE()
并在未找到任何行的情况下将其默认值设置为0。
SELECT COALESCE(MAX(TRIM(TRAILING ')' FROM SUBSTR(innvoice_no, 13))), 0) as HighestCount
FROM innvoice
WHERE innvoice_no LIKE CONCAT('2019-05-20', '%')