一尘不染

删除MySQL中列的最后两个字符

mysql

我有一个SQL列,其中的条目是字符串。我需要在剪掉最后两个字符后显示这些条目,例如,如果该条目199902345应输出1999023

我尝试研究TRIM,但看起来只有在我们知道最后两个字符是什么的情况下,它才能提供修剪功能。但就我而言,我不知道最后两个数字是什么,只需要丢弃它们即可。

简而言之,什么是MySQL字符串操作可以修剪字符串的最后两个字符?

我必须补充一点,字符串的长度不是固定的。它可以是9个字符,11个字符或任何其他字符。


阅读 844

收藏
2020-05-17

共1个答案

一尘不染

要从字符串中选择除最后 n个 字符以外的所有字符(或换句话说,从字符串中删除最后 n个
字符);一起使用SUBSTRINGCHAR_LENGTH函数:

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

要从字符串末尾删除特定的子字符串,请使用以下TRIM函数:

SELECT col
     , TRIM(TRAILING '.php' FROM col)
-- index.php becomes index
-- index.txt remains index.txt
2020-05-17