Merhaba arkadaşlar bu yazımda sizlere Verilerde Arama sözcüklerinden FIND_IN_SET kullanımından bahsedeceğim.

FIND_IN_SET’in genel olarak ne işe yaradığından bahsedecek olursak. Bir tablomuzun bir sütununda verileri , ile ayırdığımızı düşünün 1,2,3 gibi ben bu sütunda 2 değeri olan değerleri ararken IN ve ya LIKE kullanarak çok da doğru sonuçlara denk gelemem ama FIND_IN_SET ile bu işlemi kolay bir şekilde yapabiliriz. Şimdi bu işlemde kullanıcağımız örnek tablodan bahsetmek gerekirse

filmler adlı tablo

Şimdi ben türler kısmında 1 olanları listelemek istesem bana id değeri 1,2 ve 5 olanları listelemelidir şimdi bunu IN ile deniyelim

SELECT * FROM filmler WHERE turler IN (1);

sorgumuz bu şekilde ve vericeği sonuç şu şekilde olacaktır.

doğru çıktıyı verdi değil mi doğru çıktıyı vermesinin sebebi turler kısmında 1 olan değerleri ararken tüm 1lerin en başta yazılması şimdi 2 olanları arayalım.

SELECT * FROM filmler WHERE turler IN (2);

Bu sorgudan beklentimiz bize id değeri 1 ve 6 olan satırları döndürmesi ama sonuç olarak dönen sanal tablo

şeklindedir. Şimdi bunu LIKE ile denesek yani şöyle bir sorgu yazsak

SELECT * FROM filmler WHERE turler LIKE '%2%';

bize dönen sanal tabloda istemediğimiz veriler oluyor

evet istediklerimizi çekti ama fazladan turler kısmında 22 olan değeride çekmiş oldu böyle uğraşarak bir yere varamadık şimdi FIND_IN_SET ile bu işlemi rahatça yapalım

SELECT * FROM filmler WHERE FIND_IN_SET(2,turler);

bu sorguyu çalıştırırsak karşımıza şu şekilde bir sonuç çıkacaktır.

evet bu istediğimiz sonuç bunu diğer veriler için de denerseniz sürekli olarak doğru sonucu alacaksınızdır.

Özet,

Bu yazımda sizlere FIND_IN_SET kullanımından bahsettim. FIND_IN_SET in LIKE ve IN den farklarını ve FIND_IN_SET in yapacağı işi LIKE ve IN ile yaparsak nasıl sonuçlarla karşılaşıcağımızdan bahsettim.

Bir sonraki yazımda BETWEEN’den bahsedeceğim. O zamana kadar MySQL hakkında yazmış olduğum diğer yazıları okumak isterseniz buraya tıklayabilirsiniz.