2012-04-10 16 views
17

MySqlデータベースのフィールドの最後からいくつかの文字を削除する方法を探しています。MySqlデータベースのフィールドの末尾にある文字を削除する方法

私は 'items'というテーブルがあり、 'description'というフィールドがありますが、その中には<br>の末尾にあるものがあります。単一のケースが存在する可能性があります。または、そのフィールドの最後に2,3~<br>が存在する可能性があります。

これらを切り捨てる方法を見つける必要があります。<br>さんのものです。他にも<があるかもしれません。>の説明に、私が残したいと思っているものがあります。

すべてのエントリをループして、最後にそのタグがないかどうかを確認してから、新しい値でDBを更新することができます。しかし、これはそれを行うための長い道のりのように思えますし、私がしようとしていることをどのようにして達成するのかが分かりません。

+0

ような何かあなたはまた、あなたが、私は私の質問にもう少し明確にされている必要があります途中でBRを持っているか、 –

答えて

28

私がテストするためのMySQLインスタンスを持っていないが、このようなものは、おそらくそれを行うだろう:

UPDATE myTable 
    SET myCol = TRIM(TRAILING '<br>' FROM myCol); 

string functionsのいくつかを見てみましょう。

10

mysqlのTRIM機能を使用できます。

UPDATE items SET descriptions = TRIM(TRAILING "<br>" FROM descriptions) 

TRIMの使用はhereです。

+0

を開始didnot場合は削除使用することができます。削除したい文字は、どれくらいの数にかかわらず、
でした。私は文字通り "
"を取り除こうとしていませんでした。 –

+0

私はあなたの答えを投票しました。 –

+0

@SherwinFlightさて、答えを編集します。 – yaronli

2

フィールドをトリミングするには、SUBSTRINGとLENGTHを使用します。

UPDATE MyTable SET MyField=SUBSTRING(MyField,1,LENGTH(MyField)-4) 
WHERE MyField LIKE '%<br>' 
+0

...そして、 'LIKE '%br'と一致するエントリがなくなるまで、クエリを繰り返し実行します。賢い! – octern

+1

SUBSTRINGの中間の引数は0でなく1でなければなりません。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring –

+0

これが私が「何かのように」言った理由です:)。ありがとう、編集されました。 – SteveCav

関連する問題