我有一个SQL列,其中的条目是字符串。修剪最后两个字符后,我需要吐出这些条目,例如如果条目为199902345
则应输出1999023
。去掉MySQL中列的最后两个字符
我试过寻找TRIM,但看起来只有在我们知道最后两个字符是什么时才提供修整。但就我而言,我不知道最后两个数字是什么,他们只需要被丢弃。
总之,MySQL的字符串操作能够修剪字符串的最后两个字符吗?
我必须补充说,字符串的长度不固定。它可以是9个字符,11个字符或任何。
我有一个SQL列,其中的条目是字符串。修剪最后两个字符后,我需要吐出这些条目,例如如果条目为199902345
则应输出1999023
。去掉MySQL中列的最后两个字符
我试过寻找TRIM,但看起来只有在我们知道最后两个字符是什么时才提供修整。但就我而言,我不知道最后两个数字是什么,他们只需要被丢弃。
总之,MySQL的字符串操作能够修剪字符串的最后两个字符吗?
我必须补充说,字符串的长度不固定。它可以是9个字符,11个字符或任何。
使用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
列中条目的长度未知。我认为,子字符串只对固定长度的结果更好。 – 2011-05-21 09:55:08
您可以使用LENGTH(that_string)
减去number of characters
要在SUBSTRING()
选择或许还是使用TRIM()
函数删除。
如果您可以通过索引显示“TRIM()”的所有字符的示例,而不是删除所有特定类型的字符,我很乐意看到它。 – ebyrob 2017-12-21 13:32:39
为什么不使用LEFT(字符串,长度)函数而不是子字符串。
LEFT(col,length(col)-2)
您可以在这里访问https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left了解更多关于Mysql字符串函数的信息。
该列的数据类型是什么? INT或VARCHAR。 INT将允许更快的计算。 – 2011-05-21 09:01:38
@Salman它的VARCHAR(因为我们的字符也在我们的实现中) – 2011-05-21 09:53:18
好吧,然后'SUBSTRING'似乎是合适的。对于INT数据类型,除以100即可。 – 2011-05-21 10:03:33