
Last Updated (Sunday, 09 August 2009 13:17) Tuesday, 13 January 2009 12:00
หลาย ครั้ง ที่เราสร้างตาราง โดยไม่มี constraint เช่น Primary Key , Unique Key แล้วในตารางนั้น เราโหลด ข้อมูลใส่เข้าไปแล้ว ต่อมาเราจะสร้าง constraint พวก primary key ไปผูก แต่ปรากฏว่า ไม่สามารถ enable ขึ้นมาได้ เนื่องจาก ในตารางมีแถวที่ข้อมูลซ้ำกัน อาจเพราะโหลดข้อมูลเข้าไปเบิ้ลซ้ำกัน หรือ ด้วยสาเหตุอะ ไรก็แล้วแต่
วิธีนี้ จะช่วยกำจัดแถว ที่ข้อมูลซ้ำกันหลายแถวออกไป ให้เหลือเพียงแค่แถวเดียว
1. สร้างตารางขึ้นมาสำหรับทดสอบ

2. ใส่ข้อมูลที่ซ้ำกันลงไป สัก 2 ชุด


3. จะเห็นว่า เรามีข้อมูลที่ซ้ำกันอยู่ เราจะกำจัดแถวที่ซ้ำกัน เพื่อเอา ID เป็น Primary Key

4. เขียน SQL ดังนี้
DELETE FROM your_tableโดย column1 , column2 , column3 ,.. เป็นคอลัมน์ที่จะเอามาทำเป็น Key
WHERE rowid not in ( SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3...) ;

5. เมื่อดูอีกที จะเห็นว่าแถวที่ซ้ำกันถูกลบไปแล้ว เหลือแต่ตัวแทนของข้อมูลซ้ำแค่แถวเดียว


