我有一个SQL列,其中的条目是字符串。我需要在修剪最后两个字符后显示这些条目,例如如果条目为199902345
,则应输出1999023
。
我试过调查TRIM,但看起来只有当我们知道最后两个字符是什么时才提供修剪。但在我的情况下,我不知道最后两个数字是什么,他们只需要被丢弃。
那么,简而言之,MySQL字符串操作能够修剪字符串的最后两个字符吗?
我必须补充一点,字符串的长度不固定。它可以是9个字符,11个字符或任何其他。
答案 0 :(得分:100)
从字符串中选择除最后 n 之外的所有字符(或换句话说,从字符串中删除最后的 n 字符);同时使用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
要从字符串末尾删除特定子字符串,请使用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()
功能。