это мой первый вопрос, который я отправляю в stackoverflow, надеюсь, кто-то может мне помочь. До сих пор я не мог найти никого, задающего подобный вопрос.MySQL автоматически вычисляет переполнение IBAN bigint
Я хотел бы проверить, является ли немецкий IBAN правильным. В принципе это легко: вы объединяете Bank_number (8 цифр) с номером Account_Number (10 цифр), числом, эквивалентным DE (1314 = 4 цифры) и номером чека (2 цифры), затем вы вычисляете модульное деление и результат должен быть равен 1.
Вот код, я вхожу в MySQL:
SELECT MOD(500105175404777100131451,97) as a
, MOD(CONVERT(CONCAT("50010517","5404777100","1314","51"), UNSIGNED),97) as b
, CONVERT(CONCAT("50010517","5404777100","1314","51"), UNSIGNED) as c
И вот результат я получаю от MySQL:
a b c
1 60 18446744073709551615
Как вы можете видеть, когда я введите все число вручную, я получаю правильный результат (1), но когда я пытаюсь построить онемение er из отдельных строк (в этом формате они до сих пор сохранены в базе данных), модульное деление не работает, потому что строка неправильно преобразуется в число.
Может ли кто-нибудь сказать мне, в чем проблема?
Я попытался «BIGINT» вместо «UNSIGNED», но затем получил ошибку
"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB
server version for the right syntax to use near 'BIGINT"
Любая помощь будет очень цениться.
Благодаря Stephan