J'ai une colonne SQL où les entrées sont des chaînes. Je dois afficher ces entrées après avoir coupé les deux derniers caractères, par exemple. si l'entrée est 199902345
il devrait sortir 1999023
.
J'ai essayé de regarder dans TRIM, mais on dirait qu'il propose de couper uniquement si nous savons quels sont les deux derniers caractères. Mais dans mon cas, je ne sais pas ce que sont ces deux derniers chiffres et il suffit de les jeter.
En bref, quelle opération de chaîne MySQL permet de supprimer les deux derniers caractères d’une chaîne?
Je dois ajouter que la longueur de la chaîne n'est pas fixée. Il pourrait s'agir de 9 caractères, 11 caractères ou plus.
Pour sélectionner tous les caractères sauf le dernier n d'une chaîne (ou, en d'autres termes, supprimer le dernier n caractères d'une chaîne); utilisez les SUBSTRING
et CHAR_LENGTH
fonctionne ensemble:
SELECT col
, /* ANSI Syntax */ SUBSTRING(col FROM 1 FOR CHAR_LENGTH(col) - 2) AS col_trimmed
, /* MySQL Syntax */ SUBSTRING(col, 1, CHAR_LENGTH(col) - 2) AS col_trimmed
FROM tbl
Pour supprimer une sous-chaîne spécifique de la fin de chaîne, utilisez la fonction TRIM
:
SELECT col
, TRIM(TRAILING '.php' FROM col)
-- index.php becomes index
-- index.txt remains index.txt
Pourquoi ne pas utiliser la fonction LEFT (chaîne, longueur) au lieu de la sous-chaîne.
LEFT(col,length(col)-2)
vous pouvez visiter ici https://dev.mysql.com/doc/refman/5.7/fr/string-functions.html#function_left pour en savoir plus sur Mysql String Functions.
sous-chaîne ().
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Vous pouvez utiliser une LENGTH(that_string)
moins le number of characters
Que vous souhaitez supprimer dans la fonction SUBSTRING()
, ou utilisez la fonction TRIM()
.