कभी-कभी आपको तालिका में किसी अन्य स्तंभ के मान के आधार पर तालिका में किसी स्तंभ को अद्यतन करने की आवश्यकता हो सकती है। SQL सर्वर, MySQL, PostgreSQL में किसी अन्य कॉलम के आधार पर कॉलम को अपडेट करने का तरीका यहां दिया गया है।
SQL में किसी अन्य कॉलम के आधार पर कॉलम को कैसे अपडेट करें
SQL में किसी अन्य कॉलम के आधार पर कॉलम को अपडेट करने के चरण यहां दिए गए हैं।
मान लें कि आपके पास निम्न तालिका है कर्मचारी(id, first_name, last_name)
mysql> create table employees(id int, first_name varchar(255), last_name varchar(255)); mysql> insert into employees(id, first_name, last_name) values(1,'John','Doe'), (2,'Jane','Doe'); mysql> select * from employees; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | John | Doe | | 2 | Jane | Doe | +------+------------+-----------+
दूसरे कॉलम के मूल्य के आधार पर कॉलम को अपडेट करने के दो तरीके हैं - WHERE क्लॉज का उपयोग करना और CASE स्टेटमेंट का उपयोग करना।
WHERE क्लॉज का उपयोग करके किसी अन्य कॉलम के आधार पर कॉलम अपडेट करें
यहां first_name को अपडेट करने के लिए SQL क्वेरी है WHERE क्लॉज का उपयोग करके आईडी कॉलम के मूल्य के आधार पर कॉलम।
mysql> update employees set first_name='Tim' where id=1; mysql> select * from employees; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | Tim | Doe | | 2 | Jane | Doe | +------+------------+-----------+
उपरोक्त कथन में, अद्यतन विवरण पहले उन पंक्तियों का चयन करेगा जो हमारे कॉलम first_name के WHERE क्लॉज और अपडेट वैल्यू से मेल खाती हैं।
आप अपने WHERE क्लॉज में AND/OR जैसे तार्किक ऑपरेटरों का भी उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है।
mysql> update employees set first_name='Tim' where id=1 or id=3;
आप नीचे दिखाए गए अनुसार WHERE क्लॉज में IN ऑपरेटर का भी उपयोग कर सकते हैं।
mysql> update employees set first_name='Tim' where id in (1,3);
जैसा कि नीचे दिखाया गया है, आप अपने WHERE क्लॉज में एक अन्य SELECT क्वेरी का भी उपयोग कर सकते हैं।
mysql> update employees set first_name='Tim' where id in ( select id from emp2 );
इस मामले में, वे सभी पंक्तियाँ जिनका आईडी मान SELECT क्वेरी द्वारा लौटाए गए मानों में से किसी एक से मेल खाता है, को अपडेट किया जाएगा।
केस स्टेटमेंट का उपयोग करके किसी अन्य कॉलम के आधार पर कॉलम अपडेट करें
यहां first_name को अपडेट करने के लिए SQL क्वेरी है id . के मान पर आधारित स्तंभ CASE स्टेटमेंट का उपयोग करते हुए कॉलम।
mysql> update employees set first_name = (CASE WHEN id = 1 THEN 'Tim' WHEN id = 2 THEN 'Dave' END); mysql> select * from employees; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | Tim | Doe | | 2 | Dave | Doe | +------+------------+-----------+
हम first_name . का नया मान निर्दिष्ट करने के लिए CASE कथन का उपयोग करते हैं id . के प्रत्येक मान के लिए कॉलम कॉलम। WHERE क्लॉज का उपयोग करने की तुलना में यह एक बेहतर तरीका है क्योंकि WHERE क्लॉज के साथ हम केवल एक कॉलम मान को एक नए मान में बदल सकते हैं। केस स्टेटमेंट के साथ, हम आईडी कॉलम के अलग-अलग मानों के आधार पर अपने कॉलम वैल्यू को विभिन्न मानों में अपडेट कर सकते हैं।
यह भी पढ़ें :MySQL में गलत स्ट्रिंग मान को कैसे ठीक करें
किसी अन्य तालिका के आधार पर कॉलम अपडेट करें
आप एक टेबल के कॉलम को दूसरी टेबल के दूसरे कॉलम से भी अपडेट कर सकते हैं। मान लें कि आपके पास एक अन्य तालिका भी है emp2(id, first_name, last_name) और आप first_name . को अपडेट करना चाहते हैं कर्मचारियों . में first_name . के लिए तालिका emp2 . में टेबल। दोनों तालिकाओं में भी समान id है स्तंभ मान।
mysql> create table emp2(id int, first_name varchar(255), last_name varchar(255)); mysql> insert into emp2(id, first_name, last_name) values(1,'Don','Stone'), (2,'Jim','Stew'); mysql> select * from emp2; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | Don | Stone | | 2 | Jim | Stew | +------+------------+-----------+
यह भी पढ़ें :डेटाबेस व्यवस्थापकों के लिए शीर्ष MySQL ब्लॉग
ऐसे मामले में, आप एक तालिका से कॉलम को दूसरी तालिका के मूल्य के आधार पर अद्यतन करने के लिए निम्नलिखित अद्यतन विवरण वाक्यविन्यास का उपयोग कर सकते हैं।
UPDATE first_table, second_table
SET first_table.column1 = second_table.column2
WHERE first_table.id = second_table.table_id;
यहां first_name को अपडेट करने के लिए एक SQL क्वेरी है कर्मचारियों . में कॉलम first_name . के लिए तालिका emp2 . में कॉलम टेबल।
mysql> UPDATE employees, emp2 SET employees.first_name = emp2.first_name WHERE employees.id = emp2.id; mysql> select * from employees; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | Don | Doe | | 2 | Jim | Doe | +------+------------+-----------+
Ubiq डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में उनकी निगरानी करना आसान बनाता है। Ubiq को निःशुल्क आज़माएं।