У меня есть следующий запрос для генерации новых номеров заказов в формате MMDDYY- #, где номер является следующим в последовательности для сегодняшних заказов.
select concat(date_format(now(),'%m%d%y'),'-',ifNULL(max(right(po_number, LENGTH(po_number)-7)),0)+1) newPO
from orders where left(po_number, 6) = date_format(now(),'%m%d%y')
Это хорошо работает для заказов 1-9, но когда я доберусь до 10, я буду продолжать захватывать 9-е в качестве максимума и никогда не смогу генерировать MMDDYY-11 в качестве номера заказа. Мне нужно переосмыслить этот запрос, но я застрял на наиболее эффективный способ сделать это. У кого-нибудь есть элегантное решение? Вот пример структуры таблицы для тестирования.
CREATE TABLE orders (
po_number VARCHAR( 10 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO orders (po_number)
VALUES ('093009-9'), ('093009-10');
Спасибо!