Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีอัปเดตค่าคอลัมน์ด้วยระเบียนวันที่และตั้งค่า 1 สำหรับระเบียนที่เกี่ยวข้องก่อนวันที่ปัจจุบันในSQL


สมมติว่าวันที่ปัจจุบันคือ 2019-08-20 สำหรับตัวอย่างของเรา เราจะสร้างตาราง -

mysql> สร้างตาราง DemoTable( ProductStatus tinyint(1), ProductExpiryDate date);Query OK, 0 แถวได้รับผลกระทบ (1.03 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable (0,'2019-06-12'); ตกลง, 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงในค่า DemoTable (0,'2019-10-11'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.38 วินาที)mysql> แทรกลงในค่า DemoTable (0,'2018-07-24'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที) mysql> แทรกลงในค่า DemoTable (0,'2018-09 -05');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.27 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+-------------------+| ProductStatus | ProductExpiryDate |+-----------------------------+-------------------+| 0 | 2019-06-12 || 0 | 2019-10-11 || 0 | 2018-07-24 || 0 | 2018-09-05 |+-----------------------------+-------------------+4 แถวในชุด (0.00 วินาที )

ต่อไปนี้เป็นแบบสอบถามเพื่อตั้งค่า 1 สำหรับระเบียนก่อนวันที่ปัจจุบัน

mysql> อัปเดตชุด DemoTable ProductStatus=1 โดยที่ ProductExpiryDate <=CURDATE();Query OK ได้รับผลกระทบ 3 แถว (0.95 วินาที) แถวที่ตรงกัน:3 เปลี่ยนแล้ว:3 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+-------------------+| ProductStatus | ProductExpiryDate |+-----------------------------+-------------------+| 1 | 2019-06-12 || 0 | 2019-10-11 || 1 | 2018-07-24 || 1 | 2018-09-05 |+-----------------------------+-------------------+4 แถวในชุด (0.00 วินาที )