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

Luc*_*ari 68 mysql sql string

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

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

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

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

Sal*_*n A 109

使用MySQL SUBSTRING函数提取字符串的一部分.使用CHAR_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
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案非常好。但它需要直接访问该列。如果该列是其他一些字符串操作的结果,则可以使用:REVERSE(SUBSTR(REVERSE("some_string")), 2)) (2认同)

Lar*_*arz 58

为什么不使用LEFT(字符串,长度)函数而不是子字符串.

LEFT(col,length(col)-2) 
Run Code Online (Sandbox Code Playgroud)

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