MySQL使用WHERE子句直接INSERT INTO

Has*_*han 10 mysql insert where-clause

我试着谷歌搜索这个问题,但只找到如何使用两个表,如下所示,

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.)
        )
Run Code Online (Sandbox Code Playgroud)

这适用于一种情况,但现在我的兴趣是直接从程序本身上传数据而不使用两个表.我想要的是上传不在表中的数据.我脑子里的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 != '');
Run Code Online (Sandbox Code Playgroud)

但这是错的..我可能知道这样做的正确方法,非常感谢:)

Joh*_*Woo 16

INSERT语法不能有WHERE子句.你发现INSERThas WHERE子句的唯一时间就是你在使用INSERT INTO...SELECT语句时.

第一种语法已经正确.


小智 5

您可以使用 UPDATE 命令。

UPDATE table_name SET name=@name, email=@email, phone=@phone WHERE client_id=@client_id
Run Code Online (Sandbox Code Playgroud)


小智 5

INSERT语法不能有WHERE,但可以使用UPDATE

语法如下:

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;
Run Code Online (Sandbox Code Playgroud)