İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Son id yi almak..

worshiphim

0
İyinet Üyesi
Katılım
16 Ocak 2005
Mesajlar
670
Reaction score
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.
 

GNeRaL

0
İyinet Üyesi
Katılım
24 Şubat 2005
Mesajlar
2,869
Reaction score
16
Konum
Samsun
update/tarih bölümü var mı tablolarda?

yani ne girildiyse, tarihe göre sıralayıp ona göre almak...
 

disconnect

0
İyinet Üyesi
Onaylı Üye
Katılım
1 Şubat 2005
Mesajlar
3,367
Reaction score
5
SELECT id FROM tablo order by id desc

en son kaydı alırsın. id nosu en büyük olan
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
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.
 

worshiphim

0
İyinet Üyesi
Katılım
16 Ocak 2005
Mesajlar
670
Reaction score
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.
 

Lisans

0
İyinet Üyesi
Katılım
30 Ağustos 2007
Mesajlar
957
Reaction score
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
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
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)
 

Lisans

0
İyinet Üyesi
Katılım
30 Ağustos 2007
Mesajlar
957
Reaction score
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.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst