ฉันต้องการคำสั่งอัพเดต SQL สำหรับการอัปเดตฟิลด์เฉพาะของแถวทั้งหมดที่มีสตริง "test" เพื่อเพิ่มไว้ด้านหน้าของค่าที่มีอยู่
ตัวอย่างเช่นหากค่าที่มีอยู่คือ "ลอง" ควรกลายเป็น "testtry"
ฉันต้องการคำสั่งอัพเดต SQL สำหรับการอัปเดตฟิลด์เฉพาะของแถวทั้งหมดที่มีสตริง "test" เพื่อเพิ่มไว้ด้านหน้าของค่าที่มีอยู่
ตัวอย่างเช่นหากค่าที่มีอยู่คือ "ลอง" ควรกลายเป็น "testtry"
คำตอบ:
คุณสามารถใช้ฟังก์ชันCONCATเพื่อทำสิ่งนั้น:
UPDATE tbl SET col=CONCAT('test',col);
หากคุณต้องการรับข้อมูลที่ชาญฉลาดและอัปเดตเฉพาะคอลัมน์ที่ยังไม่มีการทดสอบไว้ข้างหน้าให้ลอง
UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
ดูเหมือนว่าฟังก์ชันการอัปเดตสตริงจำนวนมากใน MySQL จะทำงานในลักษณะนี้: หากอาร์กิวเมนต์เดียวคือการnull
เรียงต่อกันหรือฟังก์ชันอื่น ๆ จะกลับมาnull
เช่นกัน ดังนั้นในการอัปเดตฟิลด์ที่มีnull
ค่าก่อนอื่นให้ตั้งค่าเป็นค่าที่ไม่ใช่ค่าว่างเช่น''
ตัวอย่างเช่น:
update table set field='' where field is null;
update table set field=concat(field,' append');
นั่นเป็นวิธีง่ายๆ
UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
เราสามารถต่อคอลัมน์เดียวกันหรือคอลัมน์อื่น ๆ ของตารางได้