การใช้ 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+)