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: 判断子查询是否返回结果集,不要求知道返回什么
上一篇下一篇

猜你喜欢

热点阅读