Passei por uma situação onde deveria remover todos os caracteres que não fossem números na coluna de CPF e CNPJ na base de um cliente. A solução foi criar uma função que trabalhe com regex;
Função:
DELIMITER $$
CREATE FUNCTION `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000))
RETURNS VARCHAR(1000)
DETERMINISTIC
BEGIN
DECLARE temp VARCHAR(1000);
DECLARE ch VARCHAR(1);
DECLARE i INT;
SET i = 1;
SET temp = '';
IF original REGEXP pattern THEN
loop_label: LOOP
IF i>CHAR_LENGTH(original) THEN
LEAVE loop_label;
END IF;
SET ch = SUBSTRING(original,i,1);
IF NOT ch REGEXP pattern THEN
SET temp = CONCAT(temp,ch);
ELSE
SET temp = CONCAT(temp,replacement);
END IF;
SET i=i+1;
END LOOP;
ELSE
SET temp = original;
END IF;
RETURN temp;
END$$
DELIMITER ;
Consulta:
select regex_replace('[^0-9\]','',cpf_cnpj) from students;
Serviu como uma luva essa solução.
Fonte: https://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql
Regex para Banco MySQL
11 de April de 2021
MySQL
No Comments
adrianoApi
Passei por uma situação onde deveria remover todos os caracteres que não fossem números na coluna de CPF e CNPJ na base de um cliente. A solução foi criar uma função que trabalhe com regex;
Função:
Consulta:
Serviu como uma luva essa solução.
Fonte: https://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql