মাইএসকিউএল প্রথম 10 ফলাফল এড়িয়ে যান


102

মাইএসকিউএল-তে কি কোনও উপায় আছে যে কোনও SELECT কোয়েরি থেকে প্রথম 10 ফলাফল এড়িয়ে গেল? আমি এটি লিমিটের মতো কিছু কাজ করতে চাই।


7
এখানে সমস্ত উত্তর অনুচ্ছেদে একটি অর্ডার অনুপস্থিত। এসকিউএল টেবিলগুলির কোনও ডিফল্ট অর্ডার নেই, এবং কোনও স্পষ্ট অর্ডার ব্যতীত কোনও উপায় নেই, যেটি এড়িয়ে যাওয়ার প্রথম 10 টি ফলাফল রয়েছে
fthiella

উত্তর:


125

দুটি পরামিতি সহ LIMIT ব্যবহার করুন। উদাহরণস্বরূপ, 11-60 (যেখানে ফলাফল 1 প্রথম সারিতে রয়েছে) ফলাফলগুলি ফিরে পেতে, ব্যবহার করুন:

SELECT * FROM foo LIMIT 10, 50

সমস্ত ফলাফল প্রত্যাবর্তনের একটি সমাধানের জন্য, টমাসের উত্তর দেখুন


আপনার উল্লেখ করা সংখ্যার মধ্যে যদি কিছু সারি মুছে ফেলা হয় তবে কী হবে।
অ্যালেক্স

91

এখানে একটি অফসেট রয়েছে যাতে কৌশলটি করা উচিত:

SELECT column FROM table
LIMIT 10 OFFSET 10

7
এর চেয়ে আরও সহজ বোঝাlimit 10,10
শেলবাই


33

ম্যানুয়াল থেকে :

ফলাফল সেটের শেষ অবধি নির্দিষ্ট অফসেট থেকে সমস্ত সারি পুনরুদ্ধার করতে, আপনি দ্বিতীয় প্যারামিটারের জন্য কিছু বড় সংখ্যা ব্যবহার করতে পারেন। এই বিবৃতিটি 96 তম সারি থেকে শেষ পর্যন্ত সমস্ত সারি পুনরুদ্ধার করে:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

স্পষ্টতই, আপনার 95দ্বারা প্রতিস্থাপন করা উচিত 10। তারা যে বিপুল সংখ্যক ব্যবহার করে তা হ'ল 2 ^ 64 - 1।


5

সীমাবদ্ধতা আপনাকে যে কোনও সংখ্যক সারি বাদ দিতে দেয়। এটির দুটি পরামিতি রয়েছে এবং সেগুলির মধ্যে প্রথমটি - কতগুলি সারি বাদ যায়


এটি আমাকে পরিষ্কার করে দিয়েছে যে "হোয়াট অফসেট" ধন্যবাদ @ কল। Shrapnel
ওএম দি চিরন্তন

2
select * from table where id not in (select id from table limit 10)

যেখানে idআপনার টেবিলের চাবি হবে।


এটি ইমপাল এবং অন্যান্য ডাটাবেসের জন্য যেখানে অফসেট সহ সীমাটির জন্য একটি অর্ডার আর্গুমেন্ট প্রয়োজন যা সর্বদা কাম্য নয় do
কার্তিক এস

-5

যদি আপনার টেবিলটি আইডির মাধ্যমে অর্ডার করে থাকে তবে আপনি সহজেই এর মাধ্যমে করতে পারেন:

select * from table where id > 10
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.