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

อัปเดตระเบียนในตารางโดยดึงข้อมูลปีที่ระบุจากรูปแบบวันที่ เช่น '10/12/2010' หรือไม่


หากต้องการอัปเดตระเบียนโดยระบุปี ให้ใช้เมธอด YEAR() ตามรูปแบบต่อไปนี้:

อัปเดต yourTableName ตั้งค่า yourColumnName1=yourValue1 โดยที่ YEAR(str_to_date(yourColumnName2,'%d/%m/%Y'))=yourValue2;

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1924 ( ชื่อผู้ใช้ varchar(20), UserJoiningDate varchar(40) ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1924 ('Chris','10/12/2010'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1924 ('David','20/01/2011 '); ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1924 ('ไมค์', '20/01/2010'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1924 ( 'Carol','26/04/2013');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+----------+-----------------+| ชื่อผู้ใช้ | UserJoiningDate |+----------+-----------------+| คริส | 10/12/2553 || เดวิด | 20/01/2011 || ไมค์ | 20/01/2010 || แครอล | 26/04/2013 |+----------+-----------------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่ออัปเดตบันทึกตามปีที่ระบุ -

mysql> อัปเดต DemoTable1924 ตั้งค่า UserName='Robert' โดยที่ YEAR(str_to_date(UserJoiningDate,'%d/%m/%Y'))=2010; Query OK, 2 แถวได้รับผลกระทบ (0.00 วินาที) แถวที่ตรงกัน:2 เปลี่ยน :2 Warnings:0

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

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

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

<ก่อนหน้า>+----------+-----------------+| ชื่อผู้ใช้ | UserJoiningDate |+----------+-----------------+| โรเบิร์ต | 10/12/2553 || เดวิด | 20/01/2011 || โรเบิร์ต | 20/01/2010 || แครอล | 26/04/2013 |+----------+-----------------+4 แถวในชุด (0.00 วินาที)