[]
Array - like - mysql/php
umarım karışık olmaz;
şimdi veritabanımda "isimler" diye bir kaydım var diyelim. satır satır, 100 tane isim kayıtlı diyelim aynı zamanda.
bir diğer tablomda ise "icerikler" bulunuyor. tahmin edeceğiniz üzere bunda da kullanıcıların yazdıkları içerikler saklanıyor.
şuan istediğim şey; isimler listesinden herhangi bir isim, en son ne zaman icerik'lerde kullanılmış. ve bu kullanılan isim hangisi, bana 5 tanesini ver.
açıkçası formülü bir türlü kuramadım. bir arraya bağlamam lazım sanırım ama arraya bağlasam bile içeriklerde bunların yer alıp almadığını, alıyorsa da hangisinin yer aldığını nasıl görürüm bilemedim.
şimdi veritabanımda "isimler" diye bir kaydım var diyelim. satır satır, 100 tane isim kayıtlı diyelim aynı zamanda.
bir diğer tablomda ise "icerikler" bulunuyor. tahmin edeceğiniz üzere bunda da kullanıcıların yazdıkları içerikler saklanıyor.
şuan istediğim şey; isimler listesinden herhangi bir isim, en son ne zaman icerik'lerde kullanılmış. ve bu kullanılan isim hangisi, bana 5 tanesini ver.
açıkçası formülü bir türlü kuramadım. bir arraya bağlamam lazım sanırım ama arraya bağlasam bile içeriklerde bunların yer alıp almadığını, alıyorsa da hangisinin yer aldığını nasıl görürüm bilemedim.
aşağıdaki gibi bir sorguda işinizi görebilir.
SELECT TOP (2) AdSoyad
FROM Kullanicilar
WHERE KullaniciId IN (SELECT KullaniciId FROM Icerikler)
zaten bu tablolarda ilişkili alan olacağı için direkt olarak inner join kullanarak da seçebilirsiniz.
SELECT TOP (2) AdSoyad
FROM Kullanicilar
WHERE KullaniciId IN (SELECT KullaniciId FROM Icerikler)
zaten bu tablolarda ilişkili alan olacağı için direkt olarak inner join kullanarak da seçebilirsiniz.
- cirkinkizyokturazvotkavardir (22.06.12 13:14:03)
bi kere ilk olarak bu işi php'de değil database tarafında yapmalısın.
www.w3schools.com
bahsettiğin gereksinimi tam olarak anlayamamış olabilirim ama sanırım "kendisinden bahsedilen kullanıcılar" gibi bişey istiyorsun. performansı kötü olabilir bu istediğin şeyin, eğer cirkinkızyoktur'un dediği gibi birşey istiyorsan yani sadece icerik "yazan" kullanıcıları istiyorsan yukarıdaki cevabı kullanabilirsin.
www.w3schools.com
bahsettiğin gereksinimi tam olarak anlayamamış olabilirim ama sanırım "kendisinden bahsedilen kullanıcılar" gibi bişey istiyorsun. performansı kötü olabilir bu istediğin şeyin, eğer cirkinkızyoktur'un dediği gibi birşey istiyorsan yani sadece icerik "yazan" kullanıcıları istiyorsan yukarıdaki cevabı kullanabilirsin.
- altikereyedi (22.06.12 13:22:31)
@altikereyedi;
kanka söylediğin gibi; icerik'lerde yer alan son 5 kullanıcıyı bastırmk istiyorum yalnızca.
ya da en azından;
yani, select * from konular where icerik like (her bir kullanıcı) limit 5 gibi bir sistem lazım. yani en azından kullanıcı isimleri içeren konuları listelemem de idare edebilir şimdilik.
kanka söylediğin gibi; icerik'lerde yer alan son 5 kullanıcıyı bastırmk istiyorum yalnızca.
ya da en azından;
yani, select * from konular where icerik like (her bir kullanıcı) limit 5 gibi bir sistem lazım. yani en azından kullanıcı isimleri içeren konuları listelemem de idare edebilir şimdilik.
- kameramotor (22.06.12 13:33:59)
sorguyu yazmak mümkün değil tabii benim tarafımdan şu anda; ayrıca uygulaman nasıl scale eder, mysql nasıl performans gösterir-ya da optimizasyon için ne yapmak gerekir- gibi şeylere yanıt veremeyeceğim, ancak algoritmik açıdan performans konusu bu gereksiniminde önemli. çok dramatik durumlarla karşılaşabilirsin. benim sana önerim şu olur:
sen bu içeriği kaydediyorsun bir noktada database e değil mi? içeriği kaydederken aramanı yap, bahsedilen kullanıcıları bul ve ayrı bir tabloda sakla, laf olarak anlatmak gerekirse, "bu içerikte bu adamlardan bahsedilmiş" amaçlı bir tablon olsun. böylece sorunda bahsettiğin gibi bir bilgiye çok daha hızlı ulaşabilirsin. ben olsam böyle yapardım.
sen bu içeriği kaydediyorsun bir noktada database e değil mi? içeriği kaydederken aramanı yap, bahsedilen kullanıcıları bul ve ayrı bir tabloda sakla, laf olarak anlatmak gerekirse, "bu içerikte bu adamlardan bahsedilmiş" amaçlı bir tablon olsun. böylece sorunda bahsettiğin gibi bir bilgiye çok daha hızlı ulaşabilirsin. ben olsam böyle yapardım.
- altikereyedi (22.06.12 14:16:01)
1