ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как удалить специальные символы с помощью пользовательской функции в MySQL

Как установить MySQL на Ubuntu 16.04

Пользовательские функции MySQL – очень красивая и интересная концепция. В этом посте мы хотим создать одну настраиваемую функцию mysql для удаления специальных символов из значения поля таблицы. С помощью этой функции вы также можете удалить специальные символы из строки в mysql. В следующем примере мы сделаем sql запрос в базе данных mysql или mssql. Итак, давайте создадим функцию и как ее использовать в операторе SELECT в sql-запросе.

Создайте функцию removeSpacialChar:

CREATE FUNCTION `removeSpacialChar`(`in_str` varchar(4096)) RETURNS varchar(4096) CHARSET utf8
BEGIN
DECLARE out_str VARCHAR(4096) DEFAULT '';
DECLARE c VARCHAR(4096) DEFAULT '';
DECLARE pointer INT DEFAULT 1;
IF ISNULL(in_str) THEN
RETURN NULL;
ELSE
WHILE pointer <= LENGTH(in_str) DO
SET c = MID(in_str, pointer, 1);
IF (ASCII(c) >= 48 AND ASCII(c) <= 57) OR (ASCII(c) >= 65 AND ASCII(c) <= 90) OR (ASCII(c) >= 97 AND ASCII(c) <= 122) THEN
SET out_str = CONCAT(out_str, c);
ELSE
SET out_str = CONCAT(out_str, ' ');
END IF;
SET pointer = pointer + 1;
END WHILE;
END IF;
RETURN out_str;
END

 

Использовать с выбранным запросом:

 

SELECT removeSpacialChar(users.name) FROM `users`
Exit mobile version