小编典典

sql,如果在插入语句中不带选择

sql

问题是,如果值不存在,我需要在表中插入一行。FE

 If('x' NOT EXIXTS in (select campoX from table) then
 insert into table (...) values (...) etc.

我能怎么做?在互联网上我找不到答案:(


阅读 191

收藏
2021-04-14

共1个答案

小编典典

我假设您的表名为tbl。

INSERT INTO tbl (campoX ) 
    SELECT 'X' FROM DUAL 
    WHERE NOT EXISTS( 
                      SELECT campoX from tbl 
                      WHERE campoX ='X'
                     );

DUAL纯粹是为了方便那些要求所有SELECT语句都应该包含FROM以及可能包含其他子句的人们。MySQL可能会忽略这些子句。如果没有引用表,MySQL不需要FROM
DUAL。

如其他提到的那样,INSERT IGNORE如果您的campoX是唯一或主键字段,则可以在此处使用语句。

2021-04-14