Sqlite belirli bir sütunun verisini çekme

select * from demo where host = x fln diye bir sorgum olsun ve bu sorgudan da büssürü veri çıkıyor olsun peki örneğin bu çıkan sonuçlardan ikincisini veya n. sini döndür deme şansım var mı

Var.

import sqlite3

connect = sqlite3.connect("test.db")
cursor = connect.cursor()
cursor.execute("create table if not exists tablo(x, y)")

for i in range(10):
    cursor.execute(
        "insert into tablo(x, y) values (?, ?)", 
        (i, ["a", "b"][i % 2])
    )
connect.commit()


def nth_row_order_by(table, by, n, value):
    cursor.execute(
        f"select * from "
        f"(select *, row_number() over (order by {by}) as n from {table} "
        f"where {by}=?)"
        f"where n=?",
        (value, n)
    )
    return cursor.fetchone()[:-1]
    
    
print(nth_row_order_by(table="tablo", by="y", n=2, value="b"))
1 Beğeni

çok teşekkür ederim işe yarardı
google dan arattım arattım bulamadım sql ile fazla işim olmadığı için de dökünmanlar zaman alırdı.

1 Beğeni

Rica ederim kolay gelsin.

1 Beğeni

Cevap doğru lakin şöyle bir tavsiyede bulunayım. Sql cümleleri ile uğraşırsan 3 gün sonra farklı bir db seçmen senin için eziyet olacaktır. Bunun yerine ORM kullanman önemli. Proje küçüktür falan yapar geçersin ayrı mesele ama ORM kullanman senin açından ilerde rahat etmeni sağlar. SqlAlchemy bakabilirsin.

tavsiyeniz için teşekkür ederim. nitekim haklısınız da
zaten ben de SqlAlchemy kullanıyorum belirli bir kısımda böyle bir işlem yapmam gerekiyordu.