Mysql ilk kelimeler büyük harf (yardım)
1
●864
- 07-05-2013, 15:21:03Merhaba, bir konuda mysql hakkında bilgili arkadaşlardan yardım isteyeceğim. Veritabanında user tablosunda full_name kısmında siteye üye olurken Tam Ad girildiğinde girilen kelimelerin ilk harfinin büyük olmasını istiyorum, örneğin ali furkan yılmaz yazıldığında full_name kısmına otomatik olarak Ali Furkan Yılmaz olarak girilmeli. Bunu sağlayabileceğim bir ayar, kod var mıdır?
- 16-05-2013, 07:10:35Trigger kullanmanız gerekir.
Trigger'lar bir tabloya kayıt eklenme hemen öncesi veya hemen sonrasında otomatik olarak çalışan kod parcacıklarıdır. Tabi kayıt eklenmeden öncemi, sonramı çalışacağını ve ne yapması gerektiğini yine kodla yazıyorsunuz..
Öncelikle bir function olusturun bence, aşağıdaki kodu SQL bölümünde çalıştırın. Bu fonksiyon kendine verilen metindeki her kelimenin ilk harfini büyük yapar.
CREATE FUNCTION CAP_FIRST (input VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC 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;
Şimdide yukardaki fonksiyonu klullanan Triggerımızı yazalım
CREATE TRIGGER TRG_IlkHarfBuyut BEFORE INSERT ON Tablo_adı FOR EACH ROW BEGIN SET NEW.full_name= CAP_FIRST(NEW.full_name); END
Bu yukadardaki tabloadı kısmına kendi tablonu yaz ama user yazınca hata verebilir ne de olsa user özel bir ifade, hata verirse user adını MYSQL de nasıl bilmiyorum ama MSSQL de [user] olarak yazmak gerekiyor, belki MySQL' de de aynıdır.
Hepsi bu, Yukarıdaki iki kodu çalıştırdıktan sonra artık o tabloya ne kayıt eklerseniz ekleyin full_name içeriği otomatik olarak istediğiniz şekilde değiştirilecektir.