1. ホーム
  2. mysql

[解決済み] MySQLでカラムの最後の2文字を削除する

2023-05-12 18:28:14

質問

エントリーが文字列であるSQLカラムがあります。私は最後の2文字をトリミングした後、これらのエントリを表示する必要があります、例えば、エントリが 199902345 である場合、次のように出力する必要があります。 1999023 .

TRIMについて調べてみましたが、最後の2文字が何であるかがわかっている場合のみトリミングを行うようです。しかし、私の場合、最後の2つの数字が何であるか分からないので、それらを破棄する必要があります。

つまり、どの MySQL 文字列オペレーションが文字列の最後の 2 文字をトリミングすることを可能にするのでしょうか?

文字列の長さは固定されていないことを付け加えなければなりません。9 文字、11 文字、またはそれ以上である可能性があります。

どのように解決するのですか?

最後の文字を除くすべての文字を選択するには 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.php.php becomes index (!)
-- index.txt remains index.txt