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

MySQL-এ নির্দিষ্ট কলামগুলো দেখানো (SHOW COLUMNS ... NOT IN)

MySQL-এ টেবিলের সব কলাম না দেখিয়ে শুধু নির্দিষ্ট কলামগুলো দেখাতে SHOW COLUMNS ... WHERE Field NOT IN (...) ব্যবহার করুন।

সিনট্যাক্স

SHOW COLUMNS FROM table_name WHERE Field NOT IN ('col1', 'col2', ...);

উদাহরণ

CREATE TABLE student_information (
    student_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(50),
    student_age INT,
    student_address VARCHAR(100),
    student_all_subject_score INT
);

পুরো টেবিল কাঠামো

DESC student_information;
+------------------------+--------------+------+-----+---------+----------------+
| Field                  | Type         | Null | Key | Default | Extra          |
+------------------------+--------------+------+-----+---------+----------------+
| student_id             | int(11)      | NO   | PRI | NULL    | auto_increment |
| student_name           | varchar(50)  | YES  |     | NULL    |                |
| student_age            | int(11)      | YES  |     | NULL    |                |
| student_address        | varchar(100) | YES  |     | NULL    |                |
| student_all_subject_score| int(11)     | YES  |     | NULL    |                |
+------------------------+--------------+------+-----+---------+----------------+

শুধু student_id, student_name, student_age দেখান

SHOW COLUMNS FROM student_information 
WHERE Field NOT IN ('student_address', 'student_all_subject_score');

ফলাফল

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| student_id  | int(11)     | NO   | PRI | NULL    | auto_increment |
| student_name| varchar(50) | YES  |     | NULL    |                |
| student_age | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+

বিকল্প পদ্ধতিগুলো

INFORMATION_SCHEMA.COLUMNS (আধুনিক, ফ্লেক্সিবল)

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_db' 
  AND TABLE_NAME = 'student_information'
  AND COLUMN_NAME NOT IN ('student_address', 'student_all_subject_score');

DESCRIBE (সহজ কিন্তু ফিল্টার নেই)

DESC student_information;

প্রয়োগ ক্ষেত্র

  • মাইগ্রেশন স্ক্রিপ্টে কলাম তালিকা জেনারেট করতে
  • ডাইনামিক SQL জেনারেট করতে (SELECT list, INSERT list)
  • ডকুমেন্টেশন/স্কিমা রিভিউতে অপ্রাসঙ্গিক কলাম বাদ দিতে
  1. MySQL-এ ALTER TABLE MODIFY ব্যবহার করে বিদ্যমান কলামে NOT NULL কনস্ট্রেইন্ট যোগ করা

  2. MySQL-এ টেম্পোরারি টেবিলের কলাম লিস্ট দেখানো (SHOW COLUMNS)

  3. MySQL-এ information_schema.tables দিয়ে সব টেবিলের নাম এক লাইনে দেখানো (GROUP_CONCAT)

  4. MySQL-এ দুটি কলামের মধ্যে 'greatest' মান খুঁজে বের করা (কিছু রেকর্ড ইতিমধ্যে NULL থাকা সত্ত্বেও)