{"id":25614,"date":"2025-07-09T18:15:23","date_gmt":"2025-07-09T15:15:23","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/"},"modified":"2025-07-09T18:15:23","modified_gmt":"2025-07-09T15:15:23","slug":"postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/","title":{"rendered":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma"},"content":{"rendered":"<p># PostgreSQL&#8217;de Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma<\/p>\n<p>PostgreSQL veritaban\u0131n\u0131zda saklad\u0131\u011f\u0131n\u0131z metin verilerinde belirli bir karakterin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu bulman\u0131z m\u0131 gerekiyor?  Web uygulaman\u0131zda kullan\u0131c\u0131 yorumlar\u0131n\u0131 filtrelemek, log dosyalar\u0131n\u0131 analiz etmek veya metin tabanl\u0131 verileri i\u015flemek gibi bir\u00e7ok senaryoda bu i\u015flemi ger\u00e7ekle\u015ftirmeniz gerekebilir. Bu makalede, PostgreSQL&#8217;de bir karakterin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc bulman\u0131n farkl\u0131 y\u00f6ntemlerini, performans optimizasyonunu ve ger\u00e7ek d\u00fcnya \u00f6rneklerini ad\u0131m ad\u0131m ele alaca\u011f\u0131z.  Farkl\u0131 deneyim seviyelerine g\u00f6re haz\u0131rlanm\u0131\u015f bir \u00f6\u011frenme yol haritas\u0131 ile ilerleyece\u011fiz.<\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131<\/strong><\/p>\n<p><strong>Yeni Ba\u015flayan:<\/strong> Basit bir <code class=\"language-\">position<\/code> fonksiyonu ile son g\u00f6r\u00fcn\u00fcm\u00fc bulma.<\/p>\n<p><strong>Orta Seviye:<\/strong>  Ger\u00e7ek hayat senaryolar\u0131, <code class=\"language-\">reverse<\/code> fonksiyonu ile optimizasyon.<\/p>\n<p><strong>\u0130leri Seviye:<\/strong>  Performans analizi, karma\u015f\u0131k metinler ve edge case&#8217;ler.<\/p>\n<p><strong>PostgreSQL&#8217;de Temel Metin \u0130\u015fleme Fonksiyonlar\u0131<\/strong><\/p>\n<p>PostgreSQL, metin verilerini i\u015flemek i\u00e7in g\u00fc\u00e7l\u00fc fonksiyonlar sunar.  Bu fonksiyonlar, karakter dizilerinde arama, de\u011fi\u015ftirme, alt dize \u00e7\u0131karma gibi i\u015flemleri kolayla\u015ft\u0131r\u0131r.  Bu makalede \u00f6zellikle <code class=\"language-\">position<\/code>, <code class=\"language-\">reverse<\/code>, ve <code class=\"language-\">substring<\/code> fonksiyonlar\u0131n\u0131 kullanaca\u011f\u0131z.  <code class=\"language-\">position(substring, string)<\/code> fonksiyonu, bir alt dizeyi bir dize i\u00e7inde bulur ve ilk g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu d\u00f6nd\u00fcr\u00fcr.  <code class=\"language-\">reverse(string)<\/code> fonksiyonu, bir dizeyi ters \u00e7evirir. <code class=\"language-\">substring(string, start, length)<\/code> fonksiyonu ise bir dizenin belirli bir k\u0131sm\u0131n\u0131 ay\u0131r\u0131r.  Bu fonksiyonlar, bir karakterin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc bulmak i\u00e7in bir araya getirilecektir.<\/p>\n<p><strong>PostgreSQL&#8217;de Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma: Ad\u0131m Ad\u0131m K\u0131lavuz (Yeni Ba\u015flayan)<\/strong><\/p>\n<p>En basit yakla\u015f\u0131m, <code class=\"language-\">position<\/code> fonksiyonunu ters \u00e7evrilmi\u015f bir dize \u00fczerinde kullanmakt\u0131r.  \u00d6rne\u011fin, &#8220;Merhaba D\u00fcnya!&#8221; dizisindeki &#8220;a&#8221; karakterinin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc bulmak istiyoruz.<\/p>\n<p><strong>Ad\u0131m 1:<\/strong> Dizeyi ters \u00e7eviriyoruz:  <code class=\"language-\">reverse('Merhaba D\u00fcnya!')<\/code> sonucu &#8220;!aynd\u00fcW abarehM&#8221; olur.<\/p>\n<p><strong>Ad\u0131m 2:<\/strong> Ters \u00e7evrilmi\u015f dizede &#8220;a&#8221; karakterinin ilk g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc buluyoruz: <code class=\"language-\">position('a', reverse('Merhaba D\u00fcnya!'))<\/code>  Bu, &#8220;a&#8221; karakterinin ters \u00e7evrilmi\u015f dizedeki konumunu (3) verir.<\/p>\n<p><strong>Ad\u0131m 3:<\/strong>  Bu konumu, orijinal dizenin uzunlu\u011fundan \u00e7\u0131kararak, orijinal dizede &#8220;a&#8221; karakterinin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu buluruz: <code class=\"language-\">length('Merhaba D\u00fcnya!') - position('a', reverse('Merhaba D\u00fcnya!')) + 1<\/code>  Bu i\u015flem sonucu 8 olur ki bu da &#8220;a&#8221; karakterinin &#8220;Merhaba D\u00fcnya!&#8221; dizisindeki son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumudur.<\/p>\n<p><strong>Kod \u00d6rne\u011fi:<\/strong><\/p>\n<pre class=\"language-sql\"><code>SELECT length('Merhaba D\u00fcnya!') - position('a', reverse('Merhaba D\u00fcnya!')) + 1;<\/code><\/pre>\n<p>Bu sorgu, &#8220;a&#8221; karakterinin &#8220;Merhaba D\u00fcnya!&#8221; dizisindeki son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu (8) d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p><strong>Ger\u00e7ek Hayat \u00d6rne\u011fi ve Optimizasyon \u0130pu\u00e7lar\u0131 (Orta Seviye)<\/strong><\/p>\n<p>Bir e-ticaret sitesi d\u00fc\u015f\u00fcn\u00fcn.  \u00dcr\u00fcn isimlerinin i\u00e7indeki &#8220;_&#8221; karakterinin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc bulman\u0131z gerekiyor.  \u00d6rne\u011fin, &#8220;K\u0131rm\u0131z\u0131_Elma_B\u00fcy\u00fck&#8221; \u00fcr\u00fcn isminde &#8220;_&#8221; karakterinin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu bulmak istiyoruz.  Yukar\u0131daki y\u00f6ntemi kullanabiliriz, ancak b\u00fcy\u00fck miktarda veri i\u00e7in performans d\u00fc\u015f\u00fc\u015f\u00fc ya\u015fayabiliriz.<\/p>\n<p><strong>Optimizasyon:<\/strong>  <code class=\"language-\">reverse<\/code> fonksiyonu, b\u00fcy\u00fck dizeler i\u00e7in performans a\u00e7\u0131s\u0131ndan biraz pahal\u0131 olabilir.  Daha b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in, daha karma\u015f\u0131k ancak daha verimli bir yakla\u015f\u0131m geli\u015ftirmemiz gerekebilir.  \u00d6rne\u011fin, bir PL\/pgSQL fonksiyonu yazabiliriz:<\/p>\n<pre class=\"language-sql\"><code>CREATE OR REPLACE FUNCTION last_occurrence(text, text)\nRETURNS INTEGER AS $$\nDECLARE\n  input_string ALIAS FOR $1;\n  search_char ALIAS FOR $2;\n  last_pos INTEGER := -1;\n  i INTEGER := 1;\nBEGIN\n  WHILE i &lt;= length(input_string) LOOP\n    IF substring(input_string, i, 1) = search_char THEN\n      last_pos := i;\n    END IF;\n    i := i + 1;\n  END LOOP;\n  RETURN last_pos;\nEND;\n$$ LANGUAGE plpgsql;\n\n\nSELECT last_occurrence('K\u0131rm\u0131z\u0131_Elma_B\u00fcy\u00fck', '_');<\/code><\/pre>\n<p>Bu fonksiyon, dizenin her bir karakterini tek tek kontrol ederek son g\u00f6r\u00fcn\u00fcm\u00fcn konumunu bulur. Bu yakla\u015f\u0131m, <code class=\"language-\">reverse<\/code> fonksiyonunu kullanmaktan daha verimli olabilir, \u00f6zellikle uzun dizeler i\u00e7in.  Ayr\u0131ca, bu fonksiyonu indeksleme ile birle\u015ftirerek performans\u0131 daha da art\u0131rabiliriz.  Ancak indeksleme, sadece belirli kullan\u0131m durumlar\u0131nda faydal\u0131 olacakt\u0131r.<\/p>\n<p><strong>\u0130leri D\u00fczey Teknikler: Performans Analizi ve Edge Case&#8217;ler<\/strong><\/p>\n<p>B\u00fcy\u00fck miktarda veri i\u015flerken, performans kritik \u00f6nem ta\u015f\u0131r.  Yukar\u0131daki y\u00f6ntemlerin performans\u0131n\u0131 analiz etmek ve olas\u0131 darbo\u011fazlar\u0131 belirlemek i\u00e7in <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutunu kullanabiliriz.  Bu komut, sorgunun y\u00fcr\u00fctme plan\u0131n\u0131 ve her ad\u0131m\u0131n s\u00fcresini g\u00f6sterir.  Sonu\u00e7lar\u0131 analiz ederek, sorgunun performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in gerekli optimizasyonlar\u0131 belirleyebiliriz.<\/p>\n<p><strong>Edge Case&#8217;ler:<\/strong><\/p>\n<p>* <strong>Karakter bulunmazsa:<\/strong>  Fonksiyonlar\u0131m\u0131z, aranan karakter dizenin i\u00e7inde bulunmad\u0131\u011f\u0131nda nas\u0131l davranmal\u0131?  Yukar\u0131daki \u00f6rnekler, -1 veya 0 gibi de\u011ferler d\u00f6nd\u00fcrerek bu durumu ele al\u0131yor.  Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re bu durumu nas\u0131l ele almak istedi\u011finizi belirlemeniz \u00f6nemlidir.<br \/>\n* <strong>\u00c7oklu karakterler:<\/strong>  Birden fazla karakter ar\u0131yorsan\u0131z, daha karma\u015f\u0131k bir yakla\u015f\u0131m gerekebilir.  \u00d6rne\u011fin, regex kullanarak bu i\u015flemi ger\u00e7ekle\u015ftirebilirsiniz.<br \/>\n* <strong>Bo\u015f dizeler:<\/strong> Bo\u015f bir dize i\u00e7in fonksiyonun nas\u0131l davranmas\u0131 gerekti\u011fini d\u00fc\u015f\u00fcnmelisiniz.  Hata f\u0131rlatabilir veya \u00f6zel bir de\u011fer d\u00f6nd\u00fcrebilir.<\/p>\n<p>Bu edge case&#8217;leri ele almak i\u00e7in fonksiyonlar\u0131m\u0131z\u0131 geli\u015ftirmemiz veya ek kontroller eklememiz gerekebilir.<\/p>\n<p><strong>PostgreSQL&#8217;de Metin \u0130\u015fleme: \u0130pu\u00e7lar\u0131 ve P\u00fcf Noktalar\u0131<\/strong><\/p>\n<p>PostgreSQL&#8217;in sundu\u011fu g\u00fc\u00e7l\u00fc metin i\u015fleme fonksiyonlar\u0131n\u0131 kullanarak bir\u00e7ok farkl\u0131 metin i\u015flemini ger\u00e7ekle\u015ftirebilirsiniz.  Verimlili\u011fi art\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki ipu\u00e7lar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun:<\/p>\n<p>* <strong>\u0130ndeksleme:<\/strong>  S\u0131k\u00e7a sorgulad\u0131\u011f\u0131n\u0131z s\u00fctunlar\u0131 indeksleyin.  \u00d6zellikle <code class=\"language-\">LIKE<\/code> operat\u00f6r\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131z sorgularda indeksleme performans\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131rabilir.<br \/>\n* <strong>Fonksiyon optimizasyonu:<\/strong>  Kendi fonksiyonlar\u0131n\u0131z\u0131 yazarken, verimlili\u011fi en \u00fcst d\u00fczeye \u00e7\u0131karmak i\u00e7in dikkatli olun.  Gereksiz i\u015flemlerden ka\u00e7\u0131n\u0131n ve do\u011fru veri tiplerini kullan\u0131n.<br \/>\n* <strong>Paralel i\u015fleme:<\/strong>  B\u00fcy\u00fck miktarda veri i\u015flerken, paralel i\u015fleme tekniklerini kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn.  PostgreSQL, paralel sorgu y\u00fcr\u00fctmeyi destekler.<br \/>\n* <strong>Veri tipleri:<\/strong>  Uygun veri tiplerini kullan\u0131n.  \u00d6rne\u011fin, <code class=\"language-\">text<\/code> yerine <code class=\"language-\">varchar(n)<\/code> kullanarak depolama alan\u0131ndan tasarruf edebilirsiniz.<\/p>\n<p>Bu ipu\u00e7lar\u0131, PostgreSQL veritaban\u0131n\u0131zdaki metin verilerini verimli bir \u015fekilde i\u015flemenize yard\u0131mc\u0131 olacakt\u0131r.  Daha detayl\u0131 bilgi i\u00e7in [Fatih Soysal&#8217;\u0131n bloguna](https:\/\/fatihsoysal.com) g\u00f6z atabilirsiniz.<\/p>\n<p><strong>Sonu\u00e7<\/strong><\/p>\n<p>Bu makalede, PostgreSQL&#8217;de bir karakterin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc bulman\u0131n farkl\u0131 y\u00f6ntemlerini inceledik.  Yeni ba\u015flayanlardan ileri d\u00fczey kullan\u0131c\u0131lara kadar farkl\u0131 deneyim seviyelerine g\u00f6re ad\u0131m ad\u0131m bir k\u0131lavuz sunduk.  Ger\u00e7ek d\u00fcnya \u00f6rnekleri ve performans optimizasyon teknikleri ile konuyu daha iyi anlamaya \u00e7al\u0131\u015ft\u0131k.  Unutmay\u0131n ki, en uygun y\u00f6ntem, verilerinizin b\u00fcy\u00fckl\u00fc\u011f\u00fc, s\u0131kl\u0131k ve performans gereksinimlerine ba\u011fl\u0131 olarak de\u011fi\u015febilir.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular:<\/strong><\/p>\n<p>1. <strong>PostgreSQL&#8217;de regex kullanarak son g\u00f6r\u00fcn\u00fcm\u00fc nas\u0131l bulabilirim?<\/strong>  <code class=\"language-\">regexp_matches<\/code> fonksiyonu ve ters \u00e7evrilmi\u015f dize ile birlikte kullan\u0131labilir.<\/p>\n<p>2. <strong>\u00c7ok b\u00fcy\u00fck metinler i\u00e7in en verimli y\u00f6ntem nedir?<\/strong>  PL\/pgSQL fonksiyonu ve indeksleme kullanarak optimize edilebilir.  Ancak veri miktar\u0131na g\u00f6re farkl\u0131 yakla\u015f\u0131mlar daha uygun olabilir.<\/p>\n<p>3. <strong>Aranan karakter bulunmazsa ne olur?<\/strong>  Fonksiyonlar\u0131m\u0131z genellikle -1 veya 0 gibi bir de\u011fer d\u00f6nd\u00fcr\u00fcr.  Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re bu durumu ele almal\u0131s\u0131n\u0131z.<\/p>\n<p>4. <strong>Performans\u0131 nas\u0131l izleyebilirim?<\/strong>  <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutunu kullanarak sorgunuzun performans\u0131n\u0131 analiz edebilirsiniz.<\/p>\n<p>5. <strong>Farkl\u0131 karakter kodlamalar\u0131 nas\u0131l ele al\u0131n\u0131r?<\/strong>  PostgreSQL, UTF-8 gibi \u00e7e\u015fitli karakter kodlamalar\u0131n\u0131 destekler.  Veritaban\u0131n\u0131z\u0131n karakter kodlamas\u0131 ile uyumlu \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# PostgreSQL&#8217;de Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma PostgreSQL veritaban\u0131n\u0131zda saklad\u0131\u011f\u0131n\u0131z metin verilerinde belirli bir karakterin son g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn konumunu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[644],"tags":[],"class_list":{"0":"post-25614","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-09T15:15:23+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma\",\"datePublished\":\"2025-07-09T15:15:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\"},\"wordCount\":1153,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\",\"name\":\"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-07-09T15:15:23+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma","description":"Hi\u00e7bir etiketi bulunamad\u0131.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-07-09T15:15:23+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma","datePublished":"2025-07-09T15:15:23+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/"},"wordCount":1153,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/","name":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-07-09T15:15:23+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-bir-dizideki-bir-karakterin-son-gorunumunu-bulma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL: Bir Dizideki Bir Karakterin Son G\u00f6r\u00fcn\u00fcm\u00fcn\u00fc Bulma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=25614"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25614\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=25614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=25614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=25614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}