hızlı hızlı yazdım tam kontrol şansım olmadı, test ettiğim kadarıyla sorun yok.

CREATE FUNCTION EK(
	metin TEXT CHARSET UTF8,
	tip ENUM('birlikte','aitlik','yonelme','belirtme','bulunma','ayrilma')
)
  RETURNS TEXT CHARACTER SET UTF8
  
DETERMINISTIC
BEGIN

	DECLARE Sep VARCHAR(3) CHARSET UTF8 DEFAULT "'";
	DECLARE kalin_sesli CHAR(8) CHARSET UTF8 DEFAULT 'a,o,ı,u';
	DECLARE ince_sesli CHAR(8) CHARSET UTF8 DEFAULT 'e,i,ü,ö';
	DECLARE bharf CHAR(15) CHARSET UTF8 DEFAULT 'ç,f,h,k,s,ş,t,p';
	DECLARE sesli CHAR(17) CHARSET UTF8 DEFAULT CONCAT_WS(',',kalin_sesli,ince_sesli);
	DECLARE son_harf CHAR(1) CHARSET UTF8 DEFAULT RIGHT(RTRIM(metin),1);
	DECLARE son_sesli VARCHAR(1) CHARSET UTF8 DEFAULT '';
	DECLARE outp TEXT CHARSET UTF8 DEFAULT '';
	
	SET @lowerm = LOWER(REPLACE(metin,'I','ı'));
	SET @mlen = LENGTH(@lowerm);
	
	WHILE @mlen>0 DO
		IF (FIND_IN_SET(BINARY SUBSTRING(@lowerm FROM @mlen FOR 1),sesli)<>0) THEN
			SET son_sesli = SUBSTRING(@lowerm FROM @mlen FOR 1);
			SET @mlen := 0;
		ELSE
			SET @mlen := @mlen-1;
		END IF;
	END WHILE;
	
	IF son_sesli='' THEN
		RETURN metin;
	END IF;
	
	IF tip IN('birlikte','yonelme') THEN 
	
		IF FIND_IN_SET(BINARY son_sesli,kalin_sesli) THEN 
			SET @harf = 'a'; 
		ELSE 
			SET @harf = 'e';
		END IF;
		
		SET @kharf = '';
		IF FIND_IN_SET(son_harf,sesli) THEN 
			SET @kharf = 'y'; 
		END IF;
		
		SET outp = CONCAT(@kharf,IF(tip='birlikte','l',''),@harf);
		
	ELSEIF tip IN('aitlik','belirtme') THEN

		SET @kharf = '';
		IF FIND_IN_SET(BINARY son_harf,sesli) THEN 
			SET @kharf = IF(tip='belirtme','y','n'); 
		END IF;
		
		SET @h1 = 'ieaıüöuo';
		SET @h2 = 'iiııüüuu';
		SET @h = SUBSTRING(@h2 FROM LOCATE(son_sesli,@h1) FOR 1);
		SET outp = CONCAT(@kharf,@h,IF(tip='belirtme','','n'));
	
	ELSEIF tip IN('bulunma','ayrilma') THEN
		
		SET @bharf = 'd';
		IF FIND_IN_SET(BINARY son_harf,bharf) THEN 
			SET @bharf = 't'; 
		END IF;
		
		SET @harf = 'e';
		IF FIND_IN_SET(BINARY son_sesli,kalin_sesli) THEN 
			SET @harf = 'a'; 
		END IF;
		
		SET outp = CONCAT(@bharf,@harf,IF(tip='ayrilma','n',''));
	
	ELSE
		RETURN 'bilinmeyen ek';
	END IF;

  	RETURN CONCAT(metin,Sep,outp);
END;
sql > SELECT EK("ayşe fatma","birlikte"),EK("ayşe fatma","aitlik"),EK("ayşe fatma","yonelme"),EK("ayşe fatma","belirtme"),EK("ayşe fatma","bulunma"),EK("ayşe fatma","ayrilma")

Showing rows 0 - 0 ( 1 total, Query took 0.0026 sec)

EK("ayşe fatma","birlikte")
EK("ayşe fatma","aitlik")
EK("ayşe fatma","yonelme")
EK("ayşe fatma","belirtme")
EK("ayşe fatma","bulunma")
EK("ayşe fatma","ayrilma")
ayşe fatma'yla
ayşe fatma'nın
ayşe fatma'ya
ayşe fatma'yı
ayşe fatma'da
ayşe fatma'dan

--R10.NET; Flood Engellendi -->-> Yeni yazılan 05-05-2015 mesaj 00:10:57 -->-> Daha önceki 04-05-2015 mesaj 22:32:47 --

kullandığım fonk. dan ötürü kaynaklanan case sensitivity hatası varmış düzelttim ve test ettim.

elimde kişiler tablosu olmadığından iller tablosunda testi gerçekleştirdim.

ek konusuyla yapacaklarım bu kadar herkese iyi çalışmalar.

https://www.imageupload.co.uk/images...05/04/zzzz.jpg