/ / SQL टेबल से पिछले 25 रिकॉर्ड का चयन करें - mysql, sql

SQL तालिका से पिछले 25 रिकॉर्ड्स का चयन करें - mysql, sql

मैं पिछले 25 दर्ज किए गए रिकॉर्ड को फिर से प्राप्त करना चाहता हूं और आईडी के अनुसार शेष रिकॉर्ड को हटाना चाहता हूं

DELETE * FROM list
WHERE id NOT IN
(
SELECT *
FROM (
SELECT *
FROM "list"
ORDER BY id DESC LIMIT 25
) as rows
)

उत्तर:

उत्तर № 1 के लिए 1
DELETE *
FROM "list"
WHERE id NOT IN ( SELECT id
FROM "list"
ORDER BY id DESC
LIMIT 25 )

जवाब के लिए 0 № 2

MySQL में एक ही टेबल isn "t से चुनने के दौरान हटाते हुए।

आप इस तरह कुछ कोशिश कर सकते हैं:

 SELECT @rows_to_delete:=COUNT(*)-25 FROM list;
DELETE FROM list ORDER BY id ASC LIMIT 0, @rows_to_delete;

NB: यह वास्तविक डेटा पर चलाने से पहले परीक्षण नहीं किया जाता है।


जवाब के लिए 0 № 3

मुझे लगता है कि आपकी क्वेरी करीब है, लेकिन आपको क्या चाहिएपरिवर्तन केवल आपके उपवर्ग में आईडी के लिए फ़िल्टर करने के लिए है, "सब कुछ का चयन न करें, क्योंकि यह कोई मतलब नहीं है आप यह देखना चाहते हैं कि क्या कोई एकल आइटम (आईडी) चीजों के समूह (सभी कॉलम) में नहीं है।

इसमें अपनी क्वेरी बदलने का प्रयास करें:

DELETE FROM list
WHERE id NOT IN(
SELECT id
FROM list
ORDER BY id DESC
LIMIT 25);

मैं पहले कुछ डमी डेटा के साथ इसका परीक्षण करूंगा, लेकिन मुझे विश्वास है कि यह वही करेगा जो आप चाहते हैं।