2017-07-12 2 views
-1

company_idカラムとcity_idカラムの共通の値の組み合わせに対してグループ(任意の一意のstr)を更新したい。 「group列のみ、その後のタイプvarcharである値が同じローのグループのカラム値を更新

UPDATE table 
SET group = CAST(CONCAT(company_id, city_id) AS INTEGER) 
WHERE group IS NULL; 

場合は、ドン:

表データ

---------------------------------------- 
    | id | group | company_id | city_id | 
    ---------------------------------------- 
    | 1 | (null) | 1  | 12 | 
    | 2 | (null) | 1  | 12 | 
    | 3 | (null) | 1  | 13 | 
    | 4 | (null) | 1  | 13 | 
    | 5 | (null) | 2  | 12 | 
    | 6 | (null) | 2  | 12 | 
    | 7 | (null) | 3  | 14 | 
    ---------------------------------------- 

期待される結果

---------------------------------------- 
| id | group | company_id | city_id | 
---------------------------------------- 
| 1 | 123 | 1  | 12 | 
| 2 | 123 | 1  | 12 | 
| 3 | 223 | 1  | 13 | 
| 4 | 223 | 1  | 13 | 
| 5 | 345 | 2  | 12 | 
| 6 | 345 | 2  | 12 | 
| 7 | 467 | 3  | 14 | 
---------------------------------------- 
+0

'group'の値の基礎は何でしょうか? – Swellar

+0

グループの列の値は、特定のグループの任意の一意の値にすることができます。 –

答えて

1

あなたは、例えばCONCATCASTを、使用することができます使用する必要はありませんCAST、例えば:

UPDATE table 
SET group = CONCAT(company_id, city_id) 
WHERE group IS NULL; 

これはgroupの値がcompany_idcity_idの任意の組み合わせに対して一意であることを確認します。

CASTCONCATのドキュメントはこちらです。

関連する問題