14

この問題についてグーグルで検索してみましたが、次のように 2 つのテーブルを使用してそれを行う方法しか見つかりませんでした。

INSERT INTO tbl_member
SELECT Field1,Field2,Field3,... 
FROM temp_table
WHERE NOT EXISTS(SELECT * 
         FROM tbl_member 
         WHERE (temp_table.Field1=tbl_member.Field1 and
               temp_table.Field2=tbl_member.Field2...etc.)
        )

これは 1 つのシナリオでは機能しましたが、今は 2 つのテーブルを使用せずにプログラム自体から直接データをアップロードすることに関心があります。私が欲しいのは、テーブルにないデータをアップロードすることです。私が頭の中で持っていたSQLは次のようなものでした、

INSERT INTO tbl_member (SensorIdValue, DataTimeValue, DataInValue, IncompleteValue, SpiValue, InfoValue)
VALUES ('Sensor.org', '20121017150103', 'eth0','','','')
WHERE (SensorIdValue != 'Sensor.org'AND DataTimeValue != '20121017150103'AND DataInValue != 'eth0'AND IncompleteValue != ''AND SpiValue != ''AND InfoValue != '');

しかし、それは間違っています..私はそれを行う適切な方法を知っているかもしれません.どうもありがとうございました:)

4

6 に答える 6

23

INSERTWHERE構文に句を含めることはできません。INSERThasWHERE句が見つかるのは、INSERT INTO...SELECTステートメントを使用しているときだけです。

最初の構文はすでに正しいです。

于 2012-10-18T06:40:54.430 に答える
6

UPDATE コマンドを使用できます。

UPDATE table_name SET name=@name, email=@email, phone=@phone WHERE client_id=@client_id
于 2018-10-29T05:52:59.787 に答える
1

WHERE 句を使用して INSERT INTO SELECT を実行する方法の例。

INSERT INTO #test2 (id) SELECT id FROM #test1 WHERE id > 2
于 2015-10-30T08:31:03.583 に答える
-3

INSERT INTO ステートメント
INSERT INTO ステートメントは、テーブルに新しい行を挿入するために使用されます。
SQL INSERT INTO 構文

INSERT INTO ステートメントは 2 つの形式で記述できます。

最初の形式は、データが挿入される列名を指定せず、その値のみを指定します。

INSERT INTO table_name
VALUES (value1, value2, value3,...)

2 番目の形式は、列名と挿入する値の両方を指定します。

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
于 2012-10-18T06:48:52.400 に答える