alaca33 Diyelim ki şöyle bir sorgunuz var ve size 50 tane kayıt getirdi:
SELECT * FROM users
WHERE age > 20
Şu şekilde yaparak id'si en büyük olanı seçebilirsiniz:
SELECT * FROM users
WHERE age > 20
ORDER BY id DESC
LIMIT 1
Eğer hem sorgu çalışsın hem de ben en büyük kaydı da alayım derseniz, bunu sql ile yapamayacağınız için
SELECT * FROM users
WHERE age > 20
ORDER BY id DESC
şeklinde yapıp kullandığınız programlama dili ile ilk kaydı alabilirsiniz.
Bu işlem subquery ya da CTE kullanılarak da yapılabilir. Mesela subquery ile:
SELECT *
FROM (
SELECT * FROM users
WHERE age > 20
) AS sub
ORDER BY id DESC
LIMIT 1;
CTE ile
WITH u AS (
SELECT * FROM users
WHERE age > 20
)
SELECT *
FROM u
ORDER BY id DESC
LIMIT 1;
Başka yolları da vardır.
Elbette böyle sorularda hangi veri tabanı için sorduğunuzu belirtirseniz iyi olur çünkü cevabımız değişebilir.