ฉันมีแบบสอบถาม SQL ที่ฉันต้องการแทรกหลายแถวในแบบสอบถามเดียว ดังนั้นฉันจึงใช้สิ่งที่ชอบ:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
ปัญหาคือเมื่อฉันเรียกใช้แบบสอบถามนี้ฉันต้องการตรวจสอบว่าควรตรวจสอบUNIQUE
คีย์ (ซึ่งไม่ใช่PRIMARY KEY
) หรือไม่เช่น'name'
ด้านบนและถ้ามี'name'
อยู่แล้วควรมีการแทรกแถวทั้งหมดที่สอดคล้องกันหรือไม่
ตัวอย่างเช่นในตัวอย่างด้านล่างหาก'Katrina'
มีอยู่ในฐานข้อมูลแล้วทั้งแถวโดยไม่คำนึงถึงจำนวนของฟิลด์ควรได้รับการอัปเดต อีกครั้งถ้า'Samia'
ไม่มีอยู่แถวควรจะแทรก
ฉันคิดว่าจะใช้:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
นี่คือกับดัก ฉันติดอยู่และสับสนเกี่ยวกับวิธีการดำเนินการ ฉันมีหลายแถวที่จะแทรก / อัปเดตในแต่ละครั้ง กรุณาบอกทิศทางฉัน ขอบคุณ