La fonction "correcte" est la solution, l'utilisation de la sous-chaîne peut entraîner un problème qui n'est pas si facile à remarquer :
mysql> select right('hello', 6);
+-------------------+
| right('hello', 6) |
+-------------------+
| hello |
+-------------------+
1 row in set (0.00 sec)
mysql> select substring('hello', -6);
+------------------------+
| substring('hello', -6) |
+------------------------+
| |
+------------------------+
1 row in set (0.00 sec)
Mais si vous n'essayez pas de dépasser le début de la chaîne, alors la sous-chaîne fonctionne bien :
mysql> select substring('hello', -5);
+------------------------+
| substring('hello', -5) |
+------------------------+
| hello |
+------------------------+
1 row in set (0.00 sec)