2012-02-24 5 views
2

列fooのすべてのデータには、_という接尾辞が付きます。この_を削除します。スクリプトを書くのではなくSQLを使ってやってもいいですか?MySQLの更新列

答えて

4

それを行うにはいくつかの方法:

  • TRIM末尾に '_':

    UPDATE mytable 
    SET foo = TRIM(TRAILING '_' FROM foo) 
    
  • グラブN -1文字1からなるストリング、NSUBSTRINGCHAR_LENGTHを使用して、foo内の文字列の長さ:

    UPDATE mytable 
    SET foo = SUBSTRING(foo,1,CHAR_LENGTH(foo)-1) 
    

Iは、第1の方法をお勧めしますfooの行がある場合は、が '_'の末尾にの末尾にない場合、最初のメソッドはそのままにしますが、2番目のメソッドはそれがアンダースコアではなくても最後の文字を取ります。

0

確か:

SELECT TRIM(TRAILING '_' FROM foo) AS foo FROM ... ; 

Documentation

+0

私はあなたが正しいところにいると信じていますが、あなたは表示しようとしており、OPは「更新」したいと思っています。 –

+0

@FahimParkar私はOPが2つと2つを一緒に置くことができるほど十分に説明していると思った。 –