Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में किसी कॉलम के सभी मानों को बल्क (एक साथ) कैसे अपडेट करें?

MySQL में WHERE क्लॉज के बिना बल्क UPDATE

किसी कॉलम के सभी मानों को एक ही मान पर सेट करने के लिए WHERE क्लॉज के बिना UPDATE स्टेटमेंट चलाएं।

टेबल और डेटा

CREATE TABLE BulkChangeDemo (
    CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerName VARCHAR(20),
    isEducated BOOLEAN
);

INSERT INTO BulkChangeDemo (CustomerName, isEducated) VALUES
('Larry', true), ('John', false), ('Carol', false),
('Mike', true), ('David', false), ('Bob', false);

बल्क अपडेट क्वेरी

UPDATE BulkChangeDemo SET isEducated = true;

परिणाम

Query OK, 4 rows affected (0.18 sec)
Rows matched: 6  Changed: 4  Warnings: 0

केवल 4 पंक्तियां बदलीं क्योंकि 2 पहले से true थीं।

सत्यापन

SELECT * FROM BulkChangeDemo;
+------------+--------------+------------+
| CustomerId | CustomerName | isEducated |
+------------+--------------+------------+
| 1          | Larry        | 1          |
| 2          | John         | 1          |
| 3          | Carol        | 1          |
| 4          | Mike         | 1          |
| 5          | David        | 1          |
| 6          | Bob          | 1          |
+------------+--------------+------------+

सुरक्षा सावधानियां

  • हमेशा पहले SELECT चलाएं: SELECT * FROM BulkChangeDemo WHERE isEducated = false; यह देखने के लिए कि कितनी पंक्तियां प्रभावित होंगी।
  • ट्रांजैक्शन उपयोग करें: START TRANSACTION; UPDATE ...; -- जांचें; COMMIT/ROLLBACK;
  • बड़े टेबल पर: चरणों में अपडेट करें (LIMIT के साथ) लॉक एस्केलेशन से बचने के लिए।
  • sql_safe_updates सक्षम होने पर WHERE या LIMIT आवश्यक है।

चरणबद्ध अपडेट उदाहरण (बड़े टेबल के लिए)

UPDATE BulkChangeDemo SET isEducated = true WHERE isEducated = false LIMIT 1000;

इसे तब तक दोहराएं जब तक Rows matched: 0 न आ जाए।

  1. - MySQL में MD5() से सभी प्रविष्टियों के पासवर्ड हैश अपडेट करें

    MySQL के MD5() फ़ंक्शन का उपयोग करके प्लेनटेक्स्ट पासवर्ड कॉलम से हैश कॉलम अपडेट करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1887 ( Password TEXT, HashPassword TEXT ); डेटा डालें mysql> INSERT INTO DemoTable1887(Password) VALUES(John@9089), (90987_Carol), (656464_David_4343); MD5

  1. - MySQL में एक क्वेरी में सभी कॉलम नामों के लिए उपनाम (alias) कैसे सेट करें

    सिंटैक्स SELECT yourColumnName1 AS aliasName1, yourColumnName2 AS aliasName2 FROM yourTableName AS tableAlias; उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2014 VALUES (Chris, Brown); उपनाम के साथ क्वेरी FROM DemoTable2014 tbl; परिणाम +------------------+-----------------+ | Studen

  1. - MySQL में खोज क्वेरी के लिए उपयुक्त डेटाबेस फ़ील्ड टाइप

    REGEXP_INSTR() फ़ंक्शन (MySQL 8.0+) स्ट्रिंग में उपस्ट्रिंग की स्थिति लौटाता है; 0 = नहीं मिला। select * from yourTableName where REGEXP_INSTR(yourColumnName, yourSearchValue); उदाहरण insert into demo64(name) values(John Smith), (John Doe), (Chris Brown), (David Miller), (Carol Taylor); John खोज