ほとんどを除くすべての行についてMySQLクエリをDBで使用して値を挿入する方法

StackOverflow https://stackoverflow.com//questions/24012878

  •  21-12-2019
  •  | 
  •  

質問

私は以下のように約6000行のDBテーブル構造を持っています:。

carrier|make|model
.

私の必要性は、ほとんどを除くすべてのキャリアのメイクモデルペアを挿入できるようにSQLクエリを作成することです(ATT、Bell-Mobility、Virgin Canada、保証ATT)。

どうやってこれを行うことができますか?

役に立ちましたか?

解決

INSERT INTO table_name (carrier, make, model)
SELECT DISTINCT carrier, "Samsung", "Galaxy S5"
FROM table_name
WHERE carrier NOT IN ( 'ATT', 'bell-mobility', 'virgin Canada', 'Warranty ATT' )
.

複数の新しいMECKとモデルを追加することができます。

INSERT INTO table_name (carrier, make, model)
SELECT a.carrier, b.make, b.model
FROM (SELECT DISTINCT carrier
      FROM table_name
      WHERE carrier NOT IN ( 'ATT', 'bell-mobility', 'virgin Canada', 'Warranty ATT' ) AS a
CROSS JOIN
    (SELECT "Samsung" AS make, "Galaxy 5" AS model
     UNION
     SELECT "Nokia" AS make, "Lumia" AS model
     ...
    ) AS b
.

BTW、この問題はあなたがデータベース設計が悪いことを示唆しています。あなたが知っているすべてのキャリアをリストするキャリアのテーブルを持つべきです、あなたは各キャリアのMICSとモデルをリストしたテーブルからそれを取得するべきではありません。これは正規化が悪い例です。キャリアの携帯電話の供給を停止した場合は、存在することを完全に忘れます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top