MySQL Function to Capitalize the First Letter of Words in a String

Penulisan yang rapi dalam sebuah database tentu sangat indah. Namun terkadang di dalam database ada kalimat yang penggunaan huruf besar atau kecil tidak beraturan. Seperti contoh kasus dibawah ini dalam sebuah tabel karyawan. Pada kolom nama karyawan terdapat bentu kata yang kurang enak dipandang dalam penggunaan huruf besar atau kecil. Berikut ini kita akan buatkan sebuah fungsi yang dapat mempermudah kita untuk merubah kata atau kalimat tersebut menjadi rapi.

Normal query :

SELECT employee_name FROM tb_employee;
Result : NALdi AJa

Buat fungsi untuk mengubah huruf besar huruf pertama dari kata-kata dalam sebuah string  :

DELIMITER $$

CREATE
    FUNCTION `database_name`.`function_cap`(input VARCHAR(255))
    RETURNS VARCHAR(255)	
    BEGIN
	DECLARE len INT;
	DECLARE i INT;

	SET len   = CHAR_LENGTH(input);
	SET input = LOWER(input);
	SET i = 0;

	WHILE (i < len) DO
		IF (MID(input,i,1) = ' ' OR i = 0) THEN
			IF (i < len) THEN
				SET input = CONCAT(
					LEFT(input,i),
					UPPER(MID(input,i + 1,1)),
					RIGHT(input,len - i - 1)
				);
			END IF;
		END IF;
		SET i = i + 1;
	END WHILE;

	RETURN input;
    END$$

DELIMITER ;

Testing :

SELECT function_cap(employee_name) FROM tb_employee;
Result : Naldi Aja


Total 0 comment with 0 comment reply