v2.5.2
Giriş yap

Mysql'de sorgu içinde sorgu işlemi

azizdmrr
332 defa görüntülendi

Çoğumuz PHP veya javascript gibi dillerde bir MySQL sorgusunu for içine alıp döndürdükçe döndürüyoruz.

Peki verimliliğin tartışıldığı şu esnada çözüm olarak nasıl bir MySQL sorgusu yazabilirdiniz;


Tablomda kullanıcılar için hazırladığım örnek bir "userKey" yapısı aşağıdaki tabloda var;

UyeuserKey
Üye 1mT_0FrncAGLQM-V2QaDnc8m_SZ3OX92bHvRS
Üye 25d3SOYwxa9-YYCS5FRZaQOGm6xh62T8phFyML

Buradan da anlaşılıyor ki tüm userKey'ler random halde gelmekte...

Küçük bir soru da burada yapıştırayım: PHP'de Random diye bir şey var mıdır??? (10:27)
Konu bazımız için önemli olabilir


Gelelim asıl soruya:

SELECT
    id, userKey, 
FROM
    users
WHERE
    userKey = '....herhangi bir sıradaki randomKey....'
ORDER BY
    id
LIMIT
    (buraya bir sorgu gelecek ve aynı tablodan dönen ID değeri x olsun),
    x+50

Ben bu şekilde random key üzerinden ilerlerdiğim yapıda LIMIT kısmının başlangıç ID'sini MySQL içinde bana döndürecek, ben de o ID'ye sahip değeri x diye atanan yere atayıp belli bir alandaki datayı çekebileceğim gibi düşünün...

Mantığı belki basittir fakat benim kurgulayamadığım bir gerçek. 😅
Yardımcı olursanız sevinirim.

azizdmrr
645 gün önce
SET @usrKey = 'mT_0FrncAGLQM-V2QaDnc8m_SZ3OX92bHvRS';

SELECT
*
FROM
    users,
    (SELECT
     	usr.id AS userID,
        usr.userKey
    FROM
        users AS usr
    WHERE
        usr.userKey = @usrKey
    ) AS userID_
WHERE
	id > userID_.userID
ORDER BY
	id
LIMIT
	15

gibi bir çözüm buldum. Deneyen bir arkadaş olursa belki denk gelir çözer. Farklı çözümler aklınıza gelirse yazabilirsiniz. Kolay gelsin.