Genel

Mysql ile find_in_set kontrol

Merhabalar bugün sizlere Mysql ile find_in_set kontrol kullanarak içinde varmı aradığınız anahtarın varmı kontrolünü yapan fonksiyondan bahsetmek istiyorum. Php’de ve javascript’te çok sıkça kullanmakta olduğumuzu ( inArray &  in_array ) benzeri bir yapıyı mysql üzerinde nasıl kullanabiliriz kısa bir şekilde örnekleyerek anlatmak istedim. Mysql’de bir tablonuz var ve bu tablonuzda değerleri pipe ” | ” veya size özgü bir ayraç ile tutuyor olabilirsiniz ve bu alanları sorgularken bu değer varmı yokmu kontrol ederek ona göre davranmasını isteyebilirsiniz bu durumda kulanmaknız gereken sorguMysql ile find_in_set kontrol

[code]

SELECT FIND_IN_SET(‘b’,’a,b,c’)
[/code]

 

bu sorgunun çıktısı size 2 vericektir ve bunun anlamı belirttiğiniz değer 2 sırada demektir. Fakat siz bu ayırımları virgül “,” ile yapmadıysanız ve benim gibi pipe “|” işareti kulandıysanız yapmanız gereken ise burada bu sorguya birde replace komutunu eklemek olacaktır. Buradaki amacımız ise bizim belirttiğimiz ayıraç “delimiter” ile find_in_set kullanımında gereken “,” işaretine çevirme işlemini yaptık.

Mysql ile find_in_set kontrolünde yeni sorgumuzun alacağı hal ise

[code]
SELECT * FROM table WHERE FIND_IN_SET (‘aranan’ , REPLACE(data,’|’,’,’))>0
[/code]

olacaktır. Sizde yukarıdaki sorguyu kendinize göre derleyerek kullanabilirsiniz.

 

Bunu Oyla post

Leave a Comment

Your email address will not be published.

You may also like

%d blogcu bunu beğendi: