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

เปลี่ยนตัวอักษรเฉพาะตำแหน่งในสตริง MySQL

วิธีเปลี่ยนตัวอักษรที่ตำแหน่งเฉพาะในสตริง MySQL

ใช้ CONCAT() ร่วมกับ SUBSTRING() เพื่อต่อสตริงใหม่โดยแทนที่ตัวอักษรตำแหน่งที่ต้องการ

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value varchar(200));
mysql> insert into DemoTable(Value) values('98764');

ข้อมูลต้นฉบับ: 98764

คิวรีเปลี่ยนตัวอักษรตำแหน่งที่ 4 (นับจาก 1) จาก 6 เป็น X:

mysql> select concat(substring(Value,1,3), 'X', substring(Value,5)) from DemoTable;
+-----------------------------------------------------+
| concat(substring(Value,1,3), 'X', substring(Value,5)) |
+-----------------------------------------------------+
| 987X4                                               |
+-----------------------------------------------------+

การทำงาน:

  1. SUBSTRING(Value, 1, 3) → '987' (3 ตัวแรก)
  2. 'X' → ตัวอักษรใหม่
  3. SUBSTRING(Value, 5) → '4' (ตัวที่ 5 เป็นต้นไป)
  4. CONCAT(...) → รวมเป็น '987X4'

การประยุกต์ใช้ทั่วไป (Function):

CREATE FUNCTION REPLACE_AT(str VARCHAR(255), pos INT, newChar CHAR(1))
RETURNS VARCHAR(255) DETERMINISTIC
RETURN CONCAT(SUBSTRING(str, 1, pos-1), newChar, SUBSTRING(str, pos+1));

ทางเลือกอื่น: ใช้ INSERT(str, pos, len, newstr) - แทนที่ len ตัวอักษรตั้งแต่ pos ด้วย newstr | SELECT INSERT('98764', 4, 1, 'X') → 987X4