কম্পিউটার টিউটোরিয়াল

MySQL-এ টেবিলের ভ্যালুদের জন্য ভিন্ন কম্বিনেশন জেনারেট করা

ক্রস জয়েন (CROSS JOIN) বা কমা-সেপারেটেড টেবিল লিস্ট ব্যবহার করে সব সম্ভাব্য কম্বিনেশন বের করা যায়।

উদাহরণ:

টেবিল তৈরি:

CREATE TABLE DemoTable622 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value1 INT, Value2 INT
);

রেকর্ড যোগ করা:

INSERT INTO DemoTable622(Value1, Value2) VALUES(1000,1000), (2000,3000);

সব রেকর্ড দেখানো:

SELECT * FROM DemoTable622;

আউটপুট:

+----+--------+--------+
| Id | Value1 | Value2 |
+----+--------+--------+
| 1  | 1000   | 1000   |
| 2  | 2000   | 3000   |
+----+--------+--------+

সব কম্বিনেশন (কার্টেসিয়ান প্রোডাক্ট):

SELECT tbl1.Id, tbl2.Value1, tbl3.Value2
FROM DemoTable622 tbl1, DemoTable622 tbl2, DemoTable622 tbl3;

ফলাফল (৮টি রো = ২×২×২):

+----+--------+--------+
| Id | Value1 | Value2 |
+----+--------+--------+
| 1  | 1000   | 1000   |
| 2  | 1000   | 1000   |
| 1  | 2000   | 1000   |
| 2  | 2000   | 1000   |
| 1  | 1000   | 3000   |
| 2  | 1000   | 3000   |
| 1  | 2000   | 3000   |
| 2  | 2000   | 3000   |
+----+--------+--------+

ব্যাখ্যা: তিনবার একই টেবিল জয়েন করা হয়েছে (tbl1, tbl2, tbl3)। প্রতিটি টেবিলে ২টি রো, তাই মোট ২³=৮টি কম্বিনেশন। এক্সপ্লিসিট CROSS JOIN লিখলে আরও পড়তে সুবিধা হয়। বড় টেবিলে এটি খুব ধীর হয় (N^M কম্বিনেশন)।

  1. MySQL-এ UNION ALL ব্যবহার করে কাস্টম কলামের জন্য একাধিক মান সেট করা

  2. MySQL-এ IF ফাংশন ব্যবহার করে ENUM ভ্যালুর জন্য কাস্টম মেসেজ সেট করা

  3. MySQL-এ ENUM টাইপ ব্যবহার করে কলাম মান সীমাবদ্ধ করা

  4. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে ডেটা কপি করা