2011-07-30 12 views
30

मैं MySQL में उच्चतम आईडी के साथ पंक्ति का चयन कैसे कर सकता हूं? यह मेरा वर्तमान कोड है:मैं MySQL में उच्चतम आईडी के साथ पंक्ति का चयन कैसे कर सकता हूं?

SELECT * FROM permlog WHERE max(id) 

त्रुटियां आती हैं, क्या कोई मेरी मदद कर सकता है?

उत्तर

49
SELECT * FROM permlog ORDER BY id DESC LIMIT 0, 1 
+1

क्यों सीमित 0, 1 और LIMIT 1 नहीं? – Andrew

+5

कोई विशेष कारण नहीं है, दोनों LIMIT 1 और LIMIT 0,1 मान्य हैं। हालांकि यह दिखाता है कि आप दूसरे उच्चतम प्राप्त करने के लिए * सेमॉग LIMIT 1,1 से चयन कर सकते हैं। – badbod99

+0

बहुत खराब एक ही दृष्टिकोण टेबल पर JOIN'd पर लागू नहीं होता है। – HoldOffHunger

18

MySQL के लिए:

SELECT * 
FROM permlog 
ORDER BY id DESC 
LIMIT 1 

आप उच्चतम से id सबसे कम करने के लिए पंक्तियों क्रमबद्ध करना चाहते हैं, इसलिए ORDER BY id DESC। तो आप बस पहले को LIMIT 1:

LIMIT क्लॉज का उपयोग SELECT कथन द्वारा लौटाई गई पंक्तियों की संख्या को बाधित करने के लिए किया जा सकता है।
[...]
एक तर्क के साथ, मूल्य पंक्तियों की संख्या परिणाम की शुरुआत से सेट

13
SELECT * 
FROM permlog 
WHERE id = (SELECT MAX(id) FROM permlog) ; 

यह उच्चतम id के साथ सभी पंक्तियों को वापस लौटने के लिए होगा, मामले id में निर्दिष्ट करता है कॉलम अद्वितीय होने के लिए बाध्य नहीं है।

13

यदि यह सिर्फ उच्चतम आईडी है जो आप चाहते हैं। और आईडी अद्वितीय/auto_increment है:

SELECT MAX(ID) FROM tablename 
+1

वास्तव में यह एकमात्र सही उत्तर है! 'LIMIT 1' जोड़ना इसे सही बना देगा मुझे लगता है ... – Sliq

संबंधित मुद्दे

 संबंधित मुद्दे