কম্পিউটার

MySQL এ একটি একক ক্যোয়ারী ব্যবহার করে পূর্ববর্তী এবং পরবর্তী রেকর্ডটি কিভাবে খুঁজে পাবেন?


আপনি MySQL-এ আগের এবং পরবর্তী রেকর্ড পেতে UNION ব্যবহার করতে পারেন।

সিনট্যাক্স নিম্নরূপ

(আপনারTableName থেকে *নির্বাচন করুন WHERE yourIdColumnName> yourValue ORDER ByyourIdColumnName ASC LIMIT 1) UNION(আপনার টেবিলের নাম থেকে *নির্বাচন করুন যেখানে আপনার আইডিকলামনাম <আপনার মান অর্ডার করুন আপনার আইডিকলামনাম LSC 1প্রে); 

ধারণাটি বুঝতে, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ

mysql> পূর্ববর্তী এবং নেক্সটরেকর্ডডেমো টেবিল তৈরি করুন -> ( -> আইডি শূন্য নয় স্বয়ংক্রিয়_INCREMENT প্রাথমিক কী, -> নাম varchar(30) -> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (1.04 সেকেন্ড)

সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান।

প্রশ্নটি নিম্নরূপ

mysql> পূর্ববর্তীAndNextRecordDemo(Name) মান ('John');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.17 সেকেন্ড)mysql> পূর্ববর্তীAndNextRecordDemo(নাম) মানগুলিতে সন্নিবেশ করুন ('স্যাম');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত 0.15 সেকেন্ড)mysql> পূর্ববর্তীAndNextRecordDemo(নাম) মান ('ক্যারল') ঢোকান;কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.14 সেকেন্ড)mysql> পূর্ববর্তীএন্ডনেক্সটরেকর্ডডেমো (নাম) মানগুলিতে সন্নিবেশ করুন ('বব'); কোয়েরি প্রভাবিত (1) 0.17 সেকেন্ড)mysql> পূর্ববর্তীAndNextRecordDemo(নাম) মান ('ল্যারি') ঢোকান; কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.20 সেকেন্ড)mysql> পূর্ববর্তীএন্ডনেক্সটরেকর্ডডেমো (নাম) মানগুলিতে সন্নিবেশ করুন ('ডেভিড'); কোয়েরি ঠিক আছে ('ডেভিড'); 0.14 সেকেন্ড)mysql> পূর্ববর্তীAndNextRecordDemo(নাম) মান ('Ramit'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.12 সেকেন্ড)mysql> পূর্ববর্তীএন্ডনেক্সটরেকর্ডডেমো (নাম) মানগুলিতে সন্নিবেশ করুন ('ম্যাক্সওয়েল'); কোয়েরি ঠিক আছে ('ম্যাক্সওয়েল'); 0.15 সেকেন্ড)mysql> আগেরAndNextRecordDemo(নাম) মান ('মাইক'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.14 সেকেন্ড) mysql> পূর্ববর্তীএন্ডনেক্সটরেকর্ডডেমো (নাম) মানগুলিতে সন্নিবেশ করুন ('রবার্ট'); কোয়েরি ঠিক আছে, ow প্রভাবিত (0.19 সেকেন্ড)mysql> আগেরএন্ডনেক্সটরেকর্ডডেমো(নাম) মান ('ক্রিস') ঢোকান;কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.10 সেকেন্ড)mysql> পূর্ববর্তীএন্ডনেক্সটরেকর্ডডেমো (নাম) মান ('জেমস'); সারি প্রভাবিত (0.16 সেকেন্ড)mysql> আগেরএন্ডনেক্সটরেকর্ডডেমো(নাম) মান ('জেস') ঢোকান; ঠিক আছে, 1 সারি প্রভাবিত (0.15 সেকেন্ড)

সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন।

প্রশ্নটি নিম্নরূপ

mysql> নির্বাচন করুন * previousAndNextRecordDemo থেকে;

নিম্নলিখিত আউটপুট

<প্রে>+----+---------+| আইডি | নাম |+---+---------+| 1 | জন || 2 | স্যাম || 3 | ক্যারল || 4 | বব || 5 | ল্যারি || 6 | ডেভিড || 7 | রমিত || 8 | ম্যাক্সওয়েল || 9 | মাইক || 10 | রবার্ট || 11 | ক্রিস || 12 | জেমস || 13 | জেস |+---+---------+১৩টি সারি সেটে (০.০০ সেকেন্ড)

UNION

-এর সাথে একটি একক ক্যোয়ারী ব্যবহার করে পূর্ববর্তী এবং পরবর্তী রেকর্ড পেতে এখানে ক্যোয়ারী রয়েছে৷
mysql> (যেখানে Id থেকে *আগেরAndNextRecordDemo WHERE Id> 8 ORDER Id ASC LIMIT 1 থেকে সিলেক্ট করুন) -> UNION -> (যেখানে Id <8 ORDER BY Id DESC LIMIT) থেকে *নির্বাচন করুন); 

নিম্নলিখিত আউটপুট

<প্রে>+------+------+| আইডি | নাম |+---+-------+| 9 | মাইক || 7 | রামিত |+---+------+2 সারি সেটে (০.০৩ সেকেন্ড)

  1. কিভাবে MySQL ক্যোয়ারী ব্যবহার করে চতুর্থ সর্বোচ্চ মান পেতে হয়?

  2. দুটি টেবিলের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন খুঁজে পেতে একটি একক MySQL ক্যোয়ারী?

  3. মাইএসকিউএল ক্যোয়ারী ডুপ্লিকেট টিপল খুঁজে বের করতে এবং গণনা প্রদর্শন করতে?

  4. AND &OR অপারেটরের সাথে একটি একক MySQL ক্যোয়ারী ব্যবহার করে একটি নির্দিষ্ট রেকর্ড আনুন