একটি কলামের তারিখ মানের ভিত্তিতে অন্য কলাম আপডেট করতে UPDATE ... WHERE ক্লজে তারিখ তুলনা ব্যবহার করা হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
AdmissionDate DATE
);
Query OK, 0 rows affected (0.42 sec)
mysql> INSERT INTO DemoTable(Name, AdmissionDate) VALUES ('Chris', '2019-11-21');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(Name, AdmissionDate) VALUES ('Mike', '2019-03-11');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(Name, AdmissionDate) VALUES ('Sam', '2018-04-01');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable(Name, AdmissionDate) VALUES ('Carol', '2019-05-01');
Query OK, 1 row affected (0.40 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+-------+---------------+ | Id | Name | AdmissionDate | +----+-------+---------------+ | 1 | Chris | 2019-11-21 | | 2 | Mike | 2019-03-11 | | 3 | Sam | 2018-04-01 | | 4 | Carol | 2019-05-01 | +----+-------+---------------+ 4 rows in set (0.00 sec)
Id=3 (Sam) এর নাম ও তারিখ আপডেট
mysql> UPDATE DemoTable SET Name = 'Robert', AdmissionDate = '2019-04-01' WHERE Id = 3; Query OK, 1 row affected (0.14 sec) Rows matched: 1 Changed: 1 Warnings: 0
আপডেট পর রেকর্ড
mysql> SELECT * FROM DemoTable;
ফলাফল:
+----+--------+---------------+ | Id | Name | AdmissionDate | +----+--------+---------------+ | 1 | Chris | 2019-11-21 | | 2 | Mike | 2019-03-11 | | 3 | Robert | 2019-04-01 | | 4 | Carol | 2019-05-01 | +----+--------+---------------+ 4 rows in set (0.00 sec)
তারিখ-ভিত্তিক আপডেটের আরও উদাহরণ
-- নির্দিষ্ট তারিখের পরের সব রো আপডেট UPDATE DemoTable SET Name = 'Late' WHERE AdmissionDate > '2019-04-01'; -- মাস অনুযায়ী আপডেট UPDATE DemoTable SET Name = 'Spring' WHERE MONTH(AdmissionDate) IN (3,4,5); -- বর্তমান তারিখ থেকে ৩০ দিন আগের রো আপডেট UPDATE DemoTable SET Name = 'Recent' WHERE AdmissionDate >= DATE_SUB(CURDATE(), INTERVAL 30 DAY);
সতর্কতা
- তারিখ লিটারেল সবসময়
'YYYY-MM-DD'ফরম্যাটে দিন। WHERE DATE(col) = '2019-04-01'ব্যবহার করলে DATETIME/TIMESTAMP কলামেও কাজ করে।- ইনডেক্স ব্যবহার করতে হলে ফাংশন এড়িয়ে রেঞ্জ কোয়েরি লিখুন:
WHERE col >= '2019-04-01' AND col < '2019-04-02'।