MySQL преобразования, каждое слово с большой буквы |
24.01.2013 15:15 |
Очень часто разработчик сталкивается например с тем что привыкнув к функциям php он пытается найти их аналоги в других языках js, mysql. Бывает находит, а бывает и нет. В php есть функция для преобразования текста каждое слово с большой буквы (с заглавной) ucwords(strtolower('ucwords FoR PHP')); а для MySql увы таковой нет.
Не расстраиваемся и пишем ее сами. Функция будет иметь вид: Try: DELIMITER $$ DROP FUNCTION IF EXISTS `ICap`$$ CREATE FUNCTION `ICap`(mystring varchar(1000)) RETURNS VARCHAR(1000) BEGIN DECLARE i INT DEFAULT 1; DECLARE myc, pc CHAR(1); DECLARE myoutstring VARCHAR(1000) DEFAULT LOWER(mystring); WHILE i <= CHAR_LENGTH(mystring) DO SET myc = SUBSTRING(mystring, i, 1); SET pc = CASE WHEN i = 1 THEN ' ' ELSE SUBSTRING(mystring, i - 1, 1) END; IF pc IN (' ', '&', '''', '_', '?', ';', ':', '!', ',', '-', '/', '(') THEN SET myoutstring = INSERT(myoutstring, i, 1, UPPER(myc)); END IF; SET i = i + 1; END WHILE; RETURN myoutstring; END$$ DELIMITER ; для того чтобы ее использовать достаточно сделать так SELECT ICap('ucwords FoR MYSqL')
|