FanatPHP, сам запрос выглядит так SELECT MAX(uuid) AS maxid FROM applications WHERE uuid LIKE 'А-22-%'
я получал последнее значение, парсил и добавлял + 1, в коде перед генерацией стоит проверка если 9999 с префиксом A-22- существует в базе, то менял префикс на Б-22- и все начиналось с нуля
Dr. Bacon, да вообще задрали эти уникальные идентификаторы, 2 год воюем с ними, что посоветуешь для такого формата? Формат утвержден заказчиком изменить формат uuid не можем
RST281, использовать стандартные числовые идентификаторы и дублирующее их дополнительное поле в формате, утвержденном заказчиком.
Или даже просто пересчет 22010999 => 'A-22-999', 22021000 => 'Б-22-1000'. Смотря что у вас за формат заказчика.
Если надо сравнивать значения такого вида как числовые, то числовую компоненту следует хранить с ведущими нулями. A-22-999 и A-22-1000 сравниваются некорректно, а вот A-22-0999 и A-22-1000 - как нужно.
задрали эти уникальные идентификаторы, 2 год воюем с ними, что посоветуешь для такого формата? Формат утвержден заказчиком изменить формат uuid не можем
Говно вопрос. Каждый компонент хранится в отдельном поле, либо всё одном формализованном (вон как Adamos пишет чуть выше). Полный идентификатор собирается в вычисляемом поле или в прямо запросе. Можно даже пользовательскую функцию под это нарисовать.