2
ทำไมคำสั่ง UPDATE SET REPLACE () จะจับคู่แถว แต่ไม่เปลี่ยนเลยและไม่มีคำเตือน?
ฉันกำลังค้นหาสตริงที่แน่นอนในเขตข้อมูลและต้องการแทนที่ด้วยสตริงใหม่ โดยเฉพาะฉันต้องการให้การอ้างอิงทั้งหมดไปยัง URL หนึ่งเปลี่ยนเป็น URL อื่น ฉันได้สร้างคำสั่ง SQL นี้ขึ้นและกำลังเรียกใช้งานที่mysql>พรอมต์ของ CentOS 5.5 โดยใช้ MySQL Community Server 5.1.54 update [table] set [field] = REPLACE([field],'%domain.com%','%domain.org%'); คำตอบคือ: Query OK, 0 rows affected (0.02 sec) Rows matched: 618 Changed: 0 Warnings: 0 ฉันจะติดตามสาเหตุที่ไม่มีการเปลี่ยนแปลงได้อย่างไร แก้ไข 1: ขอบคุณ Aaron Bertrand ฉันค้นพบว่าREPLACE()ไม่สามารถจัดการสัญลักษณ์แทนได้และฉันใช้ผิดทั้งหมด (คิดว่า: WHEREclause หายไป) นี่คือคำแถลงการปฏิรูปของฉัน: UPDATE [table] …