Arkadaş id'lerini bu şekilde tutuyorsan zamanla ağırlaşabilir sistemin. Ama illaki böyle yapacağım diyorsan sql aratmasında regexp kullanarak başarabilirsin;
kullanıcı id'si : x
görüntülenen profilin id'si : y
select * from kullanicilar where friends regexp (burada regexp ifadesi olacak)
Regexp ile aram pek iyi değil ama şunun gibi olacak; ,x,(.*?),y,
Bu eksik ama, x ve y kullanıcılarının id'leri arka arkaya kayıtlıysa bulamaz mesela.
--
Ben olsam yeni bir tablo oluşturmayı tercih ederdim. Onu da şöyle yapabilirsin;
arkadaşlık ilişkilerini barındıran yeni bir tablo oluşturmalısın. Bu tablonun içinde user_id ve friend_id kolonları bulunur. Bunu oluşturduktan sonra kullanıcı tablona gir ve şunları yap;
(Kaba kod olarak yazıyorum, bu şekliyle çalışmaz sadece mantığı gösterir)
select * from kullanicilar {
$friends = explode(',',$arkadaskolonu);
foreach($friends as $f) {
insert into relationship (idkolonu, $f)
}
}Bu mantıkla çalışan bir kod yazıp bir kere çalıştırırsan, relationship tablosunda arkadaşlık ilişkileri eklenmiş olacak. Daha sonraki arkadaşlık işlemlerinde de tekrar bu tabloya kaydedilmeli. Ortak arkadaşları da bu tabloyu tarayarak bulabilirsin.