मेरे पास एक सर्वर सफेद मिनीगेम्स है, और मुझे अपने डेटाबेस को सफेद करने में समस्या है, मुझे MySQL की क्वेरी में केवल दूसरा सर्वश्रेष्ठ स्कोर नाम प्राप्त करने की आवश्यकता है .. क्या कोई मेरी मदद कर सकता है? यह मेरा डेटाबेस है:

डेटाबेस

name  | kills 
------+------
Leon  | 22    
Andy  | 14    
Brian | 8  

मुझे एंडी से सिर्फ एंडी नाम लेने और मारने की जरूरत है! कोड:

"SELECT * FROM `DATA_BASE` ORDER BY `kills` DESC"

कृपया मेरी मदद करें! क्या मैं ऐसा करने के लिए सीमा का उपयोग कर सकता हूं? मुझे क्या करना चाहिए? थक्सो

-1
Leonardo S. J. 20 जुलाई 2017, 21:45

5 जवाब

सबसे बढ़िया उत्तर

यह काम कर जाना चाहिए :

SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1 OFFSET 1;

LIMIT 1 चयनित पंक्तियों की संख्या को सीमित करता है और OFFSET 1 पंक्तियों को 1 से ऑफसेट करता है जिसके परिणामस्वरूप केवल दूसरी पंक्ति का चयन किया जाता है।

1
Nijraj Gelani 20 जुलाई 2017, 21:49

आप LIMIT कीवर्ड का उपयोग इस प्रकार कर सकते हैं:

 SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1, 1
0
Mahdi 20 जुलाई 2017, 21:48

उसकी कोशिश करो। एक 1 रिकॉर्ड तक सीमित होना चाहिए और रिकॉर्ड 2 पर शुरू होना चाहिए।

"SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 1 OFFSET 1" 
0
Noa Lea 20 जुलाई 2017, 21:49

प्रयत्न:

SELECT name FROM DATA_BASE ORDER BY kills DESC LIMIT 1,1

यह केवल दूसरा सबसे अच्छा लौटाना चाहिए, क्योंकि हम 1 विकल्प (दूसरा नंबर) चाहते हैं और हम इसे 1 (पहली संख्या) से ऑफसेट करना चाहते हैं।

0
Kyle Becker 20 जुलाई 2017, 21:51
SELECT * FROM (SELECT * FROM DATA_BASE ORDER BY kills DESC LIMIT 2) AS DB ORDER BY kills LIMIT 1;

हम MAX नेटिव फ़ंक्शन का उपयोग करके LIMIT का उपयोग किए बिना भी ऐसा कर सकते हैं:

SELECT MAX(kills) FROM DATA_BASE WHERE kills NOT IN ( SELECT Max(kills) FROM DATA_BASE);

जो पहले वाले की तुलना में काफी आसान है

0
zt1983811 20 जुलाई 2017, 23:57