Vấn đề với REVERSE() đơn thuần
mysql> SELECT REVERSE('AB-CD-EF');
+---------------------+
| REVERSE('AB-CD-EF') |
+---------------------+
| FE-DC-BA |
+---------------------+
Kết quả "FE-DC-BA" sai logic (mong muốn: "EF-CD-AB" – đảo thứ tự các đoạn).
Giải pháp: Dùng SUBSTRING_INDEX, INSTR, LOCATE
mysql> SELECT CONCAT(
SUBSTRING_INDEX('AB-CD-EF','-',-1), '-',
SUBSTR('AB-CD-EF', INSTR('AB-CD-EF','-')+1, INSTR('AB-CD-EF','-')),
LEFT('AB-CD-EF', LOCATE('-','AB-CD-EF')-1)
) AS 'Reversed';
+-----------+
| Reversed |
+-----------+
| EF-CD-AB |
+-----------+
Tách các đoạn bằng dấu '-', đảo thứ tự, ghép lại.