如何反转由破折号连接的 MySQL 字符串?


MySQL 具有函数名 REVERSE(),借助它我们可以反转字符串。但假如我们想反转由破折号连接的字符串,则使用 REVERSE() 函数将不会给出适当的结果,如下例所示

mysql> Select REVERSE('AB-CD-EF');
+---------------------+
| REVERSE('AB-CD-EF') |
+---------------------+
| FE-DC-BA            |
+---------------------+
1 row in set (0.00 sec)

适当的结果应该是“EF-CD-AB”,要获得这样的输出,我们可以将 SUBSTRING_INDEX() 函数与 Instr() 函数一起使用。它显示如下

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  |
+-----------+
1 row in set (0.00 sec)

更新于: 07-Feb-2020

65 次浏览

开启你的职业生涯

完成课程,获取认证

开始
广告