Fungsi UCWORDS di MySQL

by Minggu, Januari 25, 2015 0 comments


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 update


dan ini field setelah update menggunakan fungsi UC_DELIMETER



Perintah 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.

Sendy

Developer

Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

0 comments:

Posting Komentar