Пользовательские функции MySQL – очень красивая и интересная концепция. В этjv посте мы хотим создать одну настраиваемую функцию 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`