3

mysql データベースで、フィールド/列から文字列/部分を削除したい

私のフィールド「データ」には次のものが含まれます-

1-----------,IDEA;T;P;N,VODAFONE;R;T;P;N,AIRCEL;R;T;N,---------------
2-----------,IDEA;T;P;N,VODAFONE;R;T;N,AIRCEL;R;T;N,---------------
3-----------,IDEA;T;P;N,VODAFONE;R;N,AIRCEL;R;T;N,---------------
4-----------,IDEA;T;P;N,VODAFONE;R;T;P,AIRCEL;R;T;N,---------------

このデータでは、「VODAFONE;R;T;P;N」が 1 つの単語またはグループとして示されることを意味する部分が で区別されています。

フィールドから IDEA グループ、VODAFONE グループ、または AIRCEL グループを削除するにはどうすればよいですか。

e.g. UPDATE mytable SET data="-----------,IDEA;T;P;N,AIRCEL;R;T;N,---------------"(olddata removing VODAFONE Group)
4

1 に答える 1

1
 UPDATE mytable SET data=
 CASE
 WHEN data LIKE '%VODAFONE;R;T;P;N,%' THEN REPLACE(data,'VODAFONE;R;T;P;N,','')
 WHEN data LIKE '%VODAFONE;R;N,%' THEN REPLACE(data,'VODAFONE;R;N,','')
 WHEN data LIKE '%VODAFONE;T;P;N,%' THEN REPLACE(data,'VODAFONE;T;P;N,','')
 WHEN data LIKE '%VODAFONE;R;T,%' THEN REPLACE(data,'VODAFONE;R;T,','')
 END
 WHERE data LIKE '%VODAFONE%'

「VODAFONE blah」を削除したい文字列に置き換えます。これにより、すべてのフィールドでそれが削除されます。EDIT.さらに必要な場合は、すべてのケースを入れてください。

于 2013-09-02T15:51:59.473 に答える