Я написал функцию, которую вы можете использовать для выполнения этой работы: вы можете передать этой функции любое число, функция вычисляет класс по модулю 10000 числа (т. Е. Остаток от деления на 10000), другими словами, последнеечетыре цифры вашего номера.Затем функция объединяет XXXX-XXXX-XXXX- и нули по мере необходимости.
DELIMITER $$
CREATE FUNCTION N_CREDIT_CARD
(NUMBER INT)
RETURNS VARCHAR(19)
DETERMINISTIC
BEGIN
DECLARE NUM INT;
SET NUM=NUMBER%10000;
RETURN (CASE WHEN NUM < 10 THEN CONCAT('XXXX-XXXX-XXXX-000', CAST(NUM AS CHAR(1)))
WHEN NUM < 100 THEN CONCAT('XXXX-XXXX-XXXX-00', CAST(NUM AS CHAR(2)))
WHEN NUM < 1000 THEN CONCAT('XXXX-XXXX-XXXX-0', CAST(NUM AS CHAR(3)))
ELSE CONCAT('XXXX-XXXX-XXXX-',CAST(NUM AS CHAR(4))) END);
END$$
DELIMITER;