Как сделать подстроку +1 после значения 90 - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сгенерировать числа путем добавления 1 после последнего числа, но код не хочет добавлять 1 после 90 и сохранять генерацию 10

Последнее число в моем seq - 1918190, но новый в результате я получаю 1918110

if (ecdCentre.getCenterID() == null || ecdCentre.getCenterID().isEmpty()) {
            sql = "SELECT concat(EC_CENTRE_REGION_ID, EC_CENTRE_CONSTITUENCY_ID, lpad( CASE WHEN MAX(SUBSTRING(EC_CENTRE_NO,6)) = '' THEN 0 ELSE MAX(SUBSTRING(EC_CENTRE_NO,6)) END  + 1 , 2, '0') ) centre_number FROM ecd_centre_reference WHERE EC_CENTRE_REGION_ID = ? AND EC_CENTRE_CONSTITUENCY_ID = ? ";
            centreNumber = template.queryForObject(sql,
                    new Object[] { ecdCentre.getRegionID(), ecdCentre.getConstituencyID() }, String.class);

            ecdCentre.setCenterID(centreNumber);

            System.out.println("Getting the con code: " + ecdCentre.getConstituencyID());
            System.out.println("Geting the re code: " + ecdCentre.getRegionID());
            System.out.println("Centre Number: " + centreNumber);
        }

1 Ответ

0 голосов
/ 21 февраля 2020

Я решил это путем преобразования результата из таблицы. сначала я должен был преобразовать результат в int, как он хранится в формате varchar

            sql = "SELECT IFNULL(MAX(CONVERT( SUBSTRING(ec_centre_no, 6) , UNSIGNED INTEGER)), 0) + 1 new_centre_sequence FROM ecd_centre_reference "
                    + " WHERE ec_centre_region_id = ? AND ec_centre_constituency_id = ? ";
```````````````````````````````````````````````````````````````
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...