![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XFMFjn_Zc0Re2jSBaupvixkimV0CbQ7uT08fPMQjFCuWbNlT2uqyvKR-4UFHabDxMpMif4THxSXwUEyYM3_56IFov8lsOzzguM7k4O7PAbCi_3TKkD-AmS6Y8J_uyaWFmLuWhqisByjd/s1600/Screenshot_45.jpg)
Berawal dari temen yang posting di facebook group ads.id dia ingin mengkonversi karakter pertama dari setiap kata menjadi huruf besar. Dikarenakan saya kurang tau menahu soal fungsi di mysql, maka saya mencoba membuat fungsi baru berdasarkan sumber yang saya dapatkan.
Langkah-langkahnya mungkin seperti ini :
1. Fungsi ini merupakan tiruan dari fungsi ucfirst di PHP.
DROP FUNCTION IF EXISTS UC_FIRST;
CREATE FUNCTION UC_FIRST(oldWord VARCHAR(255)) RETURNS VARCHAR(255)
RETURN CONCAT(UCASE(SUBSTRING(oldWord, 1, 1)),SUBSTRING(oldWord, 2));
2. Fungsi ini mengambil string serta pembatas dan mengkapitalisasi setiap kata-kata berdasarkan memecahkan string tersebut dengan menggunakan delimiter (pemisah misal spasi).
DROP FUNCTION IF EXISTS UC_DELIMETER;
DELIMITER //
CREATE FUNCTION UC_DELIMETER(oldName VARCHAR(255), delim VARCHAR(1), trimSpaces BOOL) RETURNS VARCHAR(255)
BEGIN
SET @oldString := oldName;
SET @newString := "";
tokenLoop: LOOP
IF trimSpaces THEN SET @oldString := TRIM(BOTH " " FROM @oldString); END IF;
SET @splitPoint := LOCATE(delim, @oldString);
IF @splitPoint = 0 THEN
SET @newString := CONCAT(@newString, UC_FIRST(@oldString));
LEAVE tokenLoop;
END IF;
SET @newString := CONCAT(@newString, UC_FIRST(SUBSTRING(@oldString, 1, @splitPoint)));
SET @oldString := SUBSTRING(@oldString, @splitPoint+1);
END LOOP tokenLoop;
RETURN @newString;
END//
DELIMITER ;
3. Lalu sekarang silahkan dicoba dengan menggunakan perintah berikut ini
UPDATE kota set field=UC_DELIMETER(field," ", TRUE);
berikut SSnya field sebelum updatePerintah UC_DELIMETER yg dimaksud adalah field (bidang yg akan diupdate), lalu yang kedua adalah pemisahnya (delimeter) misal field dengan spasi : jawa tengah dan field dengan tanda minus jawa-tengah, lalu TRUE itu adalah ya TRUE :D hehehhehe.... nggih pun niku mawon, menawai wonten salahipun ngapunten boso londone CMIIW.
Sumberipun boso londo ten meriki.
0 comments:
Posting Komentar