MySQL özel bir işlev oluşturma konusu oldukça ilginç ve önemlidir. Bu örnekte, tablo alan değerlerinden özel karakterleri kaldıran bir özel MySQL işlevi oluşturmayı hedefliyorum. Bu işlev sayesinde MySQL'de bir dizgiden de özel karakterleri kaldırabilirsiniz. Aşağıdaki SQL sorgusunu MySQL veya MSSQL veritabanınızda çalıştırarak nasıl çalıştığını kontrol edebilirsiniz. Öyleyse, işlevi oluşturup bir SQL sorgusunda nasıl kullanacağımıza bakalım.
removeSpacialChar işlevini oluşturma:
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 Sorgusuyla Kullanım:
SELECT removeSpacialChar(users.name) FROM `users`
Umarım size yardımcı olur...
