2012-05-08 28 views
9

Temel olarak bir "hedef" çubuğu oluşturmaya çalışıyorum. Hedef, bir MySQL tablosunda yaptığım son girişi elde ederek belirlenir. Bu nedenle son girişin kimliğini almak istiyorum.MySQL tablosuna en son giriş yapın

Son girdiyi tabloya nasıl alabilirim ve daha sonra bu son girişten nasıl alırım?

(kullanma PHP)

+0

'id' gibi otomatik artan bir alanınız var mı? –

+0

En son girişi aldığınızdan emin olmak için bir zaman damgası kaydetmeniz gerekir. –

+0

@MichaelMior, Kesinlikle değil! Bunu garanti altına almak için zaman damgasının çözünürlüğün yakınında hiçbir yeri yoktur. – Brad

cevap

25

kullanabilirsiniz ise:

:

Sonra
SELECT MAX(id) FROM mytable 

satır almak için

SELECT * FROM mytable WHERE id = ??? 

Ya da hepsini tek bir sorguda yapabilirsiniz:

SELECT * FROM mytable ORDER BY id DESC LIMIT 1 
Bu örnekte kullanılan bu sql sorgusu ile istediğiniz sonuçları elde etmek için bu sorguyu kullanabilirsiniz
+0

Teşekkürler! Bence diğerleri bunu biraz daha karmaşık hale getiriyorlardı. Sanırım sorum daha iyi olabilirdi. En büyük kimliğe ihtiyacım vardı. Teşekkürler! – ComputerLocus

2

alan otomatik artan o zaman büyük id almak için LAST_INSERT_ID

+0

Bu, yalnızca eklediğinizi varsayar. –

6

:

$sql = "SELECT user_id FROM my_users_table ORDER BY user_id DESC LIMIT 0,1"; 
+0

Teşekkürler, ama muhtemelen işe yarayacak olsa Eric'i kullanacağım! – ComputerLocus

+0

Bu iyi, dostum. Umarım bu iş parçacığı sorununuzu çözmüştür =) – dotTutorials

2

güvenilir Bunu yapmak için, tabloda bazı alan olması gerektiğini yapabilirsiniz Hangisinin son olduğunu belirlemek için inceleyin. Bu, kaydı eklediğiniz zamanın bir zaman damgası olabilir; bu, sürekli olarak artan bir sıra numarası (özellikle bir otomatik artışlı sıra numarası), vb.

Daha sonra, "rec_seq" adında bir sıra numarası olduğunu varsayalım.

select * from my_table 
where rec_seq=(select max(rec_seq) from my_table) 
+0

Eric'in cevabı gibi görünüyor ama Eric'in cevabını almak zorundayım! – ComputerLocus

+0

Sorun değil, biraz daha basit, daha kolay bir çözüm. – Jay

7

Eğer LAST_INSERT_ID() işlevini kullanabilirsiniz: Sen gibi bir şey yazmak istiyorum. örnek:

$sql = "SELECT * FROM mytable WHERE id = LAST_INSERT_ID()"; 
+0

Teşekkürler, ancak bir Eric'in cevabını kullanıyorum ama bu da işe yarayacak gibi görünüyor! LAST_INSERT_ID hakkında – ComputerLocus

+3

not: LAST_INSERT_ID, diğer bağlantılara değil, geçerli bağlantıya eklenen son satırın kimliğini verir. – laltin

2

Bu size

2

bir kullanıcının en son girişi alın tablo alan verilerinin son sonucunu verecektir 0,1 tüm ters sırada tablodan alanları ve set sınır seçin

'SELECT user_id FROM table_name WHERE user_id = '.$userid.' ORDER BY user_id DESC LIMIT 1'; 
İlgili konular