কম্পিউটার

MySQL এর IF(), NULLIF(), এবং IFNULL() ফাংশন ব্যবহার করে

অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের মতই, স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ এর কন্ডিশনাল স্টেটমেন্ট থাকে যা ডেটা প্রবাহ নিয়ন্ত্রণ করে। শর্ত পূরণ হলে IF ফাংশন একটি বিবৃতি প্রদান করে এবং যদি পূরণ না হয় তবে অন্য ধরনের বিবৃতি প্রদান করে (বা কোনোটিই নয়)। আসুন MySQL ব্যবহার করে SQL IF ফাংশনটি দেখি।

প্রস্তুতি

এই SQL ফিডল একটি নমুনা স্কিমার সাথে লিঙ্ক করে যাতে নাম, বয়স এবং লিঙ্গ রয়েছে – আমরা এই নিবন্ধে এটি নিয়ে কাজ করি। এই স্কিমা দিয়ে আপনার নিজস্ব IDE-তে একটি টেবিল তৈরি করুন:

create table names (
   id INT,
   name VARCHAR(50),
   age INT,
   gender VARCHAR(50)
);
insert into names (id, name, age, gender) values (1, 'Bret Starkings', 55, 'M');
insert into names (id, name, age, gender) values (2, 'Bobbye Eyckel', 76, 'F');
insert into names (id, name, age, gender) values (3, 'Barbie Veschi', 50, 'F');
insert into names (id, name, age, gender) values (4, 'Electra Blazewicz', 47, 'F');
insert into names (id, name, age, gender) values (5, 'Estrella Borleace', 57, 'F');
insert into names (id, name, age, gender) values (6, 'Washington Pittwood', 75, 'M');
insert into names (id, name, age, gender) values (7, 'Phaedra Tertre', 27, 'F');
insert into names (id, name, age, gender) values (8, 'Nicolina Elie', 76, 'F');
insert into names (id, name, age, gender) values (9, 'Hugh Hughson', 86, 'M');
insert into names (id, name, age, gender) values (10, 'Dare Ravilious', 59, 'M');
insert into names (id, name, age, gender) values (11, 'Cad Levins', 13, 'M');
insert into names (id, name, age, gender) values (12, 'Sollie Kimbury', 33, 'M');
insert into names (id, name, age, gender) values (13, 'Elga Rearie', 61, 'F');
insert into names (id, name, age, gender) values (14, 'Cherey Terron', 54, 'F');
insert into names (id, name, age, gender) values (15, 'Abbie Kent', 23, 'F');
insert into names (id, name, age, gender) values (38, 'Nelia Picot', 2, 'F');
insert into names (id, name, age, gender) values (39, 'Benedetto Smithin', 33, 'M');
insert into names (id, name, age, gender) values (40, 'Rickie Maymand', 83, 'F');
insert into names (id, name, age, gender) values (41, 'Kristoforo Dashkov', 6, 'M');
insert into names (id, name, age, gender) values (42, 'Cherice Genty', 6, 'F');
insert into names (id, name, age, gender) values (43, 'Shirley Fake', 95, 'F');
insert into names (id, name, age, gender) values (44, 'Aeriel Plant', 36, 'F');
insert into names (id, name, age, gender) values (45, 'Halimeda Gook', 74, 'F');
insert into names (id, name, age, gender) values (46, 'Minor Harriot', 63, 'M');
insert into names (id, name, age, gender) values (47, 'Greggory Found', 61, 'M');
insert into names (id, name, age, gender) values (48, 'Vivien Braund', 94, 'F');
insert into names (id, name, age, gender) values (49, 'Gaylord Pochet', 96, 'M');
insert into names (id, name, age, gender) values (77, 'Nataline Sealand', 43, 'F')

IF()

IF(expression ,expr_true, expr_false);

একটি MySQL ডাটাবেসে IF ফাংশনের সিনট্যাক্স IF কীওয়ার্ড ব্যবহার করে এবং তারপরে তিনটি প্যারামিটার নেয়:ফাংশনটি যে বুলিয়ান এক্সপ্রেশনটি মূল্যায়ন করছে, শর্তটি সত্য হলে ফেরত দেওয়ার বিবৃতি, এবং শর্তটি মিথ্যা হলে ফেরত দেওয়ার বিবৃতি। .

SELECT name, age, IF(age >= 18, "YES", "NO") AS OVER_18
FROM names;

উপরের আমাদের ক্যোয়ারীটি আমাদের প্রবেশের নাম এবং বয়স নির্বাচন করে তারপর একটি শর্তসাপেক্ষ নির্বাচন করে যাকে আমরা OVER_18 বলি৷ আমাদের SQL আংশিক ফলাফল নীচে দেখানো হয়েছে (আপনি এই SQL ফিডলে সম্পূর্ণ ফলাফল দেখতে পারেন):

নাম বয়স OVER_18
ব্রেট স্টার্কিংস 55 হ্যাঁ
ববি আইকেল 76 হ্যাঁ
বার্বি ভেচি 50 হ্যাঁ
ইলেকট্রা ব্লেজউইচ 47 হ্যাঁ
Estrella Borleace 57 হ্যাঁ
ওয়াশিংটন পিটউড 75 হ্যাঁ
Phaedra Tertre 27 হ্যাঁ
নিকোলিনা এলি 76 হ্যাঁ
Hugh Hughson 86 হ্যাঁ
ডেয়ার রেভিলিয়াস 59 হ্যাঁ
ক্যাড লেভিনস 13 না

IFNULL()

IFNULL() একটি শর্তসাপেক্ষ বিবৃতি যা জিজ্ঞাসা করে যে প্রথম অভিব্যক্তিটি NULL কিনা। যদি এটি হয়, এটি দ্বিতীয় অভিব্যক্তি প্রদান করে এবং প্রথমটি নয়।

IFNULL(NULL, 2) ⇒ returns 2
IFNULL(0, 4) ⇒ returns 0

SELECT name, IFNULL(age, "NOT ENTERED") AS age
FROM names;

এই MySQL বিবৃতিটি বয়স নামক একটি কলাম প্রদান করে যা প্রতিটি শূন্য এন্ট্রিকে "NOT ENTERED" স্ট্রিং দিয়ে ওভাররাইট করবে৷

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

NULLIF()

NULLIF() ফাংশনে পাস করা উভয় এক্সপ্রেশন সমান হলে NULL প্রদান করে।

SELECT name, NULLIF(name, age) AS 
FROM names;

এটি একটি চরম উদাহরণ কারণ সম্ভবত এমন কোনও ক্ষেত্রে হবে না যেখানে নাম এবং বয়স সমান হবে, তবে বাক্য গঠনটি অন্তত লেখা হবে। আপনি কি এমন একটি ক্ষেত্রে ভাবতে পারেন যেখানে এই বিবৃতি ব্লকটি উপকারী হবে?

উপসংহার

মাইএসকিউএল-এ, কয়েকটি ভিন্ন যদি ফাংশন রয়েছে যা আমাদের ডেটার প্রবাহ নিয়ন্ত্রণ করতে দেয়। এই ধারণাগুলি আপনি যে ডাটাবেসের সাথে কাজ করছেন তাতে অনুবাদ করা হয়েছে – আপনার নির্দিষ্ট ডাটাবেসের সিনট্যাক্স সম্পর্কে আরও তথ্যের জন্য ডক্স দেখুন।


  1. জাভাস্ক্রিপ্টে encodeURI() এবং decodeURI() ফাংশন।

  2. জাভাস্ক্রিপ্ট ব্যবহার করে প্রথম নাম এবং পদবি ভাগ করবেন?

  3. হ্যাশ ফাংশন এবং হ্যাশ টেবিল

  4. একটি ম্যাকে পাইথন 3 আপগ্রেড করা এবং ব্যবহার করা