2016-06-26 6 views
0

が含まれている私は、このようないくつかの列がありTicketテーブル持っているすべての行:更新5つのキー

IPAddress = sometext, ComputerName = sometext , GetID = sometext, CustomerName=sometext-sometext , PharmacyCode = 13162900 

私が欲しい:

ID : int 
Body : nvarchar 
Type : int 

私はBody列は次のように値を持つ多くの行を持っていますBody列に次のキーが少なくとも5つあるすべての行のType列を更新します。

IPAddress, ComputerName, GetID, CustomerName, PharmacyCode 

答えて

3

あなたは「キー」は同じ順序で常に知っていればあなたがそう

UPDATE Ticket 
SET Type = 4 
WHERE Body LIKE '%IPAddress%ComputerName%GetID%CustomerName%PharmacyCode%' 

の場合のようなLIKE条件を連結することができることを

UPDATE Ticket 
SET Type = 4 
WHERE Body LIKE '%IPAddress%' 
    and Body LIKE '%ComputerName%' 
    and Body LIKE '%GetID%' 
    and Body LIKE '%CustomerName%' 
    and Body LIKE '%PharmacyCode%' 

のような単純な更新ステートメントでそれを行うことができますデータモデルを変更する可能性があります。このキー&の値の列を独自のテーブルに展開し、適切なリレーショナルモデルで行われているようにこのテーブルにリンクするほうがずっと良いでしょう。

+0

ありがとうございます、それはうまく動作します。 –

1

あなたの文字列に=存在の数によって、キーと値のペアの数を計算することができた場合は、一部には、実際にあなたの文字列に存在する等号の数を示します。このクエリ

Update tblname set col=val where len(colname) - len(replace(colname,'=','')>5 

ザ・を使用することができます。

+0

あなたの答えは良いです、ありがとう –

関連する問題