วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2554

วิธีการดึง Record สุดท้ายของการบันทึกในฐานข้อมูลอ้างอิงจากตาราง

การทำงานกับข้อมูลที่มีการปรับปรุงตลอด และต้องทำการบันทึการเปลี่ยนแปลงไว้ด้วยโดยการอ้างอิงกับวันและเวลา เชื่อแน่นอนว่าจะต้องมีปัญหาเกี่ยวกับการดึงข้อมูลล่าสุดออกมาใช้งาน จึงเป็นเรื่องที่ทำให้เกิดเรื่องยุงยาก 

วันนี้จะขอเสนอแนวทางการใช้ SQL เพื่อดึงข้อมูล record สุดท้ายออกมา

แนวทางที่ 1
  • ให้เลือกข้อมูลโดยการเรียงลำดับจากมากไปน้อยก่อน จากนั้นใช้ฟังก์ชั่น limit เข้ามาช่วยในการตัดตััวที่เหลือออกไปเอาแค่ record แรกที่ผ่านการเรียงลำดับจากมากไปน้อยแล้วออกมา
SELECT RECORD_TIME
FROM TABLE1

ORDER BY RECORD_TIME DESC

LIMIT 1
 
แนวทางที่ 2
  •  เป็นการใช้คำสั่ง Max() เพื่อหาค่าสูงสุดออกมาก่อน จากนั้นใช้คำสั่งดึงข้อมูลปกติตามด้วย where ค่า Max() ที่ดึงออกมา
SELECT RECORD_TIME, CUSTOMER_ID
FROM TABLE1
WHERE RECORD_TIME = (SELECT MAX(RECORD_TIME) FROM TABLE1 WHERE CUSTOMER_ID = 'customer_id')

ปล. หากท่านใดมีแนวทางอื่นก็ลองมาแชร์กันดูนะครับ