2017-04-30 3 views
0

UPDATEクエリ全体が実行される条件を挿入する方法はありますか?条件に基づいたUPDATEの実行

するのは、私が望んでいたとしましょう...(条件が真である)

のIF UPDATE:私はあなたが別の値を挿入するには、クエリ自体の中にIFまたはCASEを使用することができることを知っているが、私は、このシナリオについて話していますデータを検証し、結果に基づいてUPDATEを実行します(私はそれが悪い考えであり、データの検証はスクリプトによる賢明なやり方で行うべきであると私は理論的な可能性を見直しています)。実行

UPDATE:実行されません

IF ("12345" REGEXP "[0-9]+") UPDATE table SET numdata = "12345" WHERE...; 

がUPDATE:

IF ("a1234" REGEXP "[0-9]+") UPDATE table SET numdata = "a1234" WHERE...; 

おかげで、

プリーズ

をここで私はそれが数値だかどうかをチェックするために正規表現に対して値をテストところ、以下のような

答えて

0

WHERE句にREGEXPを入力してください:

DECLARE mynumdata varchar(10) = "a1234"; 
UPDATE table SET numdata = mynumdata 
WHERE @numdata REGEXP "[0-9]+" 
    AND <other update conditions>; 
+0

としてこれを書くことができる答えを、あなたの両方をありがとう、今それは私にはそれほど明白と思われます。私は提出物の間の1秒差に基づいて選択された答えを選んだ:) – prezes

0

これを行う1つの方法は、条件をWHERE句に追加することです。あなたはもともと

UPDATE table SET numdata = "a1234" WHERE id=1

を持っていた場合

だから、

UPDATE table SET numdata = "a1234" WHERE id=1 AND "1234" REGEXP "[0-9]+"

関連する問題