Son id yi almak..

0
Onaylı Üye
Üye
Katılım
16 Ocak 2005
Mesajlar
670
Tepki puanı
0
Konum
Suisse
Merhaba
Epey araştırdım ama mysqle girilen kayıtlardan sonuncusunun idsini almayı başaramadım.

SELECT MAX( ID ) AS ID
FROM tablo

Bu sekilde denedigimde 9999 çikiyor halbuki tabloda 60000 küsür kayit var.

Count(ID) yapamam çünkü idler karisik toplam id sayisinden son girilen entryleri bulamam.

yardim edeceklere şimdiden tesekkur ederiyorum.
 
0
Onaylı Üye
Üye
Katılım
23 Şubat 2005
Mesajlar
2,869
Tepki puanı
18
Konum
Samsun
update/tarih bölümü var mı tablolarda?

yani ne girildiyse, tarihe göre sıralayıp ona göre almak...
 
0
Onaylı Üye
Üye
Katılım
16 Ocak 2005
Mesajlar
670
Tepki puanı
0
Konum
Suisse
malesef tarih veya zamanla ilgili hiç bir field yok
 
0
Onaylı Üye
Üye
Katılım
1 Şubat 2005
Mesajlar
3,367
Tepki puanı
7
SELECT id FROM tablo order by id desc

en son kaydı alırsın. id nosu en büyük olan
 
0
Onaylı Üye
Üye
Katılım
16 Ocak 2005
Mesajlar
670
Tepki puanı
0
Konum
Suisse
disconnect,
o şekilde denediğimde 9999 gibi fieldlar geliyor
 
0
Onaylı Üye
Üye
Katılım
11 Aralık 2004
Mesajlar
6,457
Tepki puanı
3
Konum
izmir
Select * from tablo order by id desc

bu şekil dene
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
Permission in vermis oldugu SQL kodu dogru, az bir degisiklik ile:

Select id from tablo order by id desc limit 1

Bu isler icin kullanilmasi gereken kod:

select max(id) from tablo

Gelelim senin her seferinde neden 9999 gordugune.

Olasiliklar:

1. Buyuk ihtimalle tablo yapindaki id kolonu veri tipi max 9999 a izin veriyor.
2. 6000 kayit olmasina ragmen en buyuk id 9999, yani tekrar eden kayitlar mevuct.

Simdi bu olasiliklari tartismak yerine sen bize tablo yapini ver inceleyelim.
 
0
Onaylı Üye
Üye
Katılım
16 Ocak 2005
Mesajlar
670
Tepki puanı
0
Konum
Suisse
merhabalar
tablo yapisini incelerken ID fieldının tipinin varchar oldugunu gördüm .
INT yapıp max ile en büyük id yi alabildim..

SELECT MAX( ID ) AS ID
FROM tablo


İlgilenen herkese teşekkür ederim.
 
0
Onaylı Üye
Üye
Katılım
29 Ağustos 2007
Mesajlar
957
Tepki puanı
3
bu şekilde son id alınmaz mesela birkaç veri silip yeni veri eklediniz mi hesap şaşırır.
En temizi select id from tablo where order by id DESC LIMIT 0,1
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
bu şekilde son id alınmaz mesela birkaç veri silip yeni veri eklediniz mi hesap şaşırır.
En temizi select id from tablo where order by id DESC LIMIT 0,1

Son id ile sanirim en buyuk id yi kastediyor.
SQL onerinizin max() fonsiyonundan bir farki yoktur, max built-in bir fonksiyondur ve kullanimi kolaydir.

Eger en buyuk id degilde son (Last) id isteniyor ise, her id ekleme/degistirme isleminde (insert, update) islem tarihi alani da degistirilmelidir ve son id islem tarihine bakilarak secilmelidir.
select id from table where islem_tarihi=(select max(islem_tarihi) from table)
 
0
Onaylı Üye
Üye
Katılım
29 Ağustos 2007
Mesajlar
957
Tepki puanı
3
Son id ile sanirim en buyuk id yi kastediyor.
SQL onerinizin max() fonsiyonundan bir farki yoktur, max built-in bir fonksiyondur ve kullanimi kolaydir.

Eger en buyuk id degilde son (Last) id isteniyor ise, her id ekleme/degistirme isleminde (insert, update) islem tarihi alani da degistirilmelidir ve son id islem tarihine bakilarak secilmelidir.
select id from table where islem_tarihi=(select max(islem_tarihi) from table)

Tamam limit'i 0,1 yapıp Desc ile en sonu başa alırsak zaten istediğimiz oluyor. Diğer türlü işlem tarih'i eklersek çok uzun iş olur kulağımızı öbür taraftan tutmak gibi düşünün. ama direk limit işlemlerini kullanırsak zor olmaz.
select id from tablo LIMIT 1,2 order by id desc ile sondan bir önceki id'yi alırız.
 
Geri
Üst