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

时间:2011-05-21 08:49:18

标签: mysql sql string

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

我试过调查TRIM,但看起来只有当我们知道最后两个字符是什么时才提供修剪。但在我的情况下,我不知道最后两个数字是什么,他们只需要被丢弃。

那么,简而言之,MySQL字符串操作能够修剪字符串的最后两个字符吗?

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

4 个答案:

答案 0 :(得分:100)

从字符串中选择除最后 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

答案 1 :(得分:49)

为什么不使用LEFT(字符串,长度)函数代替子字符串。

LEFT(col,length(col)-2) 

您可以访问https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left以了解有关Mysql字符串函数的更多信息。

答案 2 :(得分:4)

答案 3 :(得分:0)

您可以在LENGTH(that_string)选择中使用number of characters减去要删除的SUBSTRING(),或使用TRIM()功能。