sql 条件插入
2019-05-31 本文已影响0人
__robin
某表中已有该值时,不添加数据
INSERT INTO table(field1, field2, ...fieldn)
SELECT 'field1', 'field2', ...'fieldn'
FROM DUAL
WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)
实例
INSERT INTO tableA(
//要插入的字段
id,
device_id,
data,
create_by,
create_date
) SELECT
//要插入的值,为空可以用null代替
value1,
value2,
value1,
value4,
value5
FROM DUAL
//dual是为了构建查询语句而存在的表, mysql5.7以上可以不写FROM DUAL
WHERE NOT EXISTS(SELECT 1 tableB WHERE device_id = value2 )
//判断device_id,data相同的值是否存在,存在则不添加
//EXISTS: 判断子查询是否返回结果集,不要求知道返回什么