Russian (CIS)
 
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')

 

 
reload Загадки, Афоризмы

Легче всего создаются трудности

Посещаемость

Яндекс.Метрика