SQLite插入(如果不在排除表中)

时间:2019-04-30 15:06:11

标签: sql sqlite

如果排除表中不存在任何值,我将尝试在“记录表”中插入。

      INSERT INTO Records(Front, Back) VALUES ( ?, ?)
        WHERE NOT EXISTS (SELECT VALUE FROM Exclusion WHERE INSTR(VALUE, Back))

因此,如果在“后退”中找到了排除表中找到的VALUE的一部分,则不要插入。

排除表的格式为键,值

当我尝试运行此命令时,不会插入任何记录。如果排除表为空,这也需要工作并插入所有记录。

TIA

1 个答案:

答案 0 :(得分:2)

您不能在WHERE语句中使用INSERT INTO...VALUES..子句。
而是像这样使用INSERT INTO...SELECT..

INSERT INTO Records(Front, Back) 
SELECT frontvalue, backvalue
WHERE NOT EXISTS (SELECT VALUE FROM Exclusion WHERE INSTR(VALUE, backvalue) > 0)

您可以使用运算符LIKE代替函数INSTR()

WHERE VALUE LIKE '%' || backvalue || '%'