web-dev-qa-db-ja.com

MySQLの列の最後の2文字を削除します

エントリが文字列であるSQL列があります。最後の2文字をトリミングした後、これらのエントリを表示する必要があります。エントリが199902345の場合、1999023を出力する必要があります。

TRIMを調べてみましたが、最後の2つの文字が何であるかがわかっている場合にのみトリムするように見えます。しかし、私の場合、最後の2つの数字が何であるかはわかりません。破棄する必要があります。

つまり、要するに、MySQLの文字列操作は、文字列の最後の2文字をトリムするために何を可能にしますか?

文字列の長さが固定されていないことを付け加えなければなりません。 9文字、11文字、その他何でもかまいません。

63
Lucky Murari

文字列から最後の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
104
Salman A

部分文字列の代わりにLEFT(string、length)関数を使用しない理由。

LEFT(col,length(col)-2) 

こちらをご覧ください https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left Mysql文字列関数の詳細をご覧ください。

54
Larz
4

LENGTH(that_string)を使用して、SUBSTRING()で削除したい_number of characters_を選択するか、TRIM()関数を使用できます。

0
Richard