0

同じフィールドを持つテーブルがあり、そのフィールドを更新したいのですが、where句を使用して

update tmp_aus_inv_data
SET cust_region= "ROTOMOULD"
WHERE division = "ROTOMOULD" ;

update tmp_aus_inv_data
SET cust_region= "Internal"
WHERE division = "EXTRUSION" and ucase(cust_region) like ucase('Internal%') ;

私はこれで試しましたが、機能しませんでした、

update tmp_aus_inv_data
(set cust_region= "ROTOMOULD"),
(SET cust_region= "Internal")
WHERE division = "ROTOMOULD"  and WHERE division = "EXTRUSION" and ucase(cust_region)     like ucase('Internal%') ;
4

2 に答える 2

3

CASEでステートメントを使用できるUPDATEので、次のようなものが必要だと思います。

update tmp_aus_inv_data
SET cust_region 
    = case 
        when division = "ROTOMOULD" then "ROTOMOULD"
        when division = "EXTRUSION" 
            and ucase(cust_region) like ucase('Internal%')
          then "Internal"
        else cust_region
      end
 where division in ("ROTOMOULD", "EXTRUSION")

SQL FiddlewithDemoを参照してください

于 2012-11-02T14:21:42.240 に答える
1

以下のクエリを一度試してください。

UPDATE tmp_aus_inv_data
   SET `cust_region`= if(`division`= 'ROTOMOULD', 'ROTOMOULD', 'Internal') 
WHERE division in ('ROTOMOULD','EXTRUSION');
于 2012-11-02T14:27:38.293 に答える