如何颠倒连接着短划线的 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)
广告