Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:条件插入。。。为具有常量值的多行选择_Mysql_Select_Insert - Fatal编程技术网

MySQL:条件插入。。。为具有常量值的多行选择

MySQL:条件插入。。。为具有常量值的多行选择,mysql,select,insert,Mysql,Select,Insert,我知道如何在一个查询中插入多个具有常量值的行: INSERT INTO table VALUES (1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z'); 但我如何有条件地做到这一点?我想确保只插入不存在的*行。甚至可以在一个查询中完成吗 *当一行的所有列都与我们要插入的列相同时,该行就存在了使用插入忽略到而不是插入到。前者仅在不违反唯一键约束的情况下插入行 INSERT IGNORE INTO table VALUES (1, 'a', 'x'

我知道如何在一个查询中插入多个具有常量值的行:

INSERT INTO table
VALUES
  (1, 'a', 'x'),
  (2, 'b', 'y'),
  (3, 'c', 'z');
但我如何有条件地做到这一点?我想确保只插入不存在的*行。甚至可以在一个查询中完成吗


*当一行的所有列都与我们要插入的列相同时,该行就存在了

使用
插入忽略到
而不是
插入到
。前者仅在不违反唯一键约束的情况下插入行

INSERT IGNORE INTO table
VALUES
  (1, 'a', 'x'),
  (2, 'b', 'y'),
  (3, 'c', 'z');

但是忽略将只检查现有密钥。幸运的是,这对我的设置有效。但如果我想让它检查所有内容(包括非键列),该怎么办?