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

การอัปเดตตารางด้วย Regular Expression (REGEXP) ใน MySQL

การใช้ REGEXP ในเงื่อนไข WHERE ของ UPDATE

MySQL รองรับ Regular Expression ในเงื่อนไข WHERE ... REGEXP 'pattern' สำหรับกรองแถวที่จะอัปเดต

ตัวอย่าง: เพิ่มคำนำหน้า 'Street' ให้กับหมายเลขที่เป็นตัวเลข 1-2 หลัก

CREATE TABLE DemoTable2023 (StreetNumber VARCHAR(100));

INSERT INTO DemoTable2023 VALUES ('7'), ('1'), ('AUS-100'), ('US-101');

UPDATE DemoTable2023
SET StreetNumber = CONCAT('Street', StreetNumber)
WHERE StreetNumber REGEXP '^[0-9]{1,2}$';

ผลลัพธ์

StreetNumber
Street7
Street1
AUS-100
US-101

คำอธิบาย Regex: ^[0-9]{1,2}$ หมายถึง เริ่มต้น (^) จบ ($) ด้วยตัวเลข 1-2 ตัว

หมายเหตุ: MySQL ใช้ REGEXP แบบ POSIX รองรับใน WHERE แต่ไม่รองรับใน REPLACE() โดยตรง (ต้องใช้ REGEXP_REPLACE ใน MySQL 8.0+)