2012-06-18 32 views
21

PHP kullanarak MySQL bir tablodaki son kaydı seçmeye çalışıyorum. SQL hatası aldığına inanıyorum. İşte benim SQL kodum:SORUN GİDERME ve SIFIRLA hata

SELECT TOP 1 id FROM `table` ORDER BY id DESC 

Bu geçerliyse ve aslında bir PHP hatası varsa, söyle bana. Geçersiz bir sql sözdizimine sahipseniz,

cevap

43

. LIMIT yerine

bu deneyin kullanın:

SELECT id 
FROM table 
ORDER BY id DESC 
LIMIT 1 

TOP fıkra MSSQL sunucu üzerinde çalışır.

+0

Bu iyi çalışıyor. Sanırım SQL'de pek iyi değilim ... – Markasoftware

+0

@Markasoftware: Eğer SQL Server'a geçmezseniz. :) –

+1

@PeterMajeed Doğru. ama MySQL değil etiketli MS etiketli MS :) –

9

daha basit ve daha DBMS-agnostik yaklaşım olacaktır: Eğer diğer sütunları SEÇ çalıştı aksi takdirde, sadeceid alan istemeniz durumunda bulunuyor

SELECT MAX(id) AS id 
FROM table 

, bu eşleştirme verileri dönmek olmaz ve id alanına bunun yerine kullanmak gerekir: Eğer sınırıkullanmak isteyen değil, bu son kayıt bulmak için çalışacaktır

SELECT id, otherfields, ..., ... 
FROM table 
WHERE id = (SELECT MAX(id) FROM table) 
+0

bu da iyidir :) –

+0

Bu da iyi görünüyor. – Markasoftware

0

SELECT TOP 1 FROM Products ORDER BY id desc 

Else

SELECT * FROM Products ORDER BY id DESC LIMIT 1 
İlgili konular