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

Sqlite插入(如果不在排除表中),sql,sqlite,Sql,Sqlite,如果排除表中不存在值,我将尝试插入Records表 因此,如果在排除表中找到的值的一部分在Back中找到,则不要插入 排除表的格式为键、值 当我尝试运行此操作时,没有插入任何记录。如果排除表为空,则还需要执行此操作并插入所有记录 TIA在插入到…值中时不能使用WHERE子句。。陈述 而是使用插入到…选择。。像这样: INSERT INTO Records(Front, Back) SELECT frontvalue, backvalue WHERE NOT EXISTS (SELECT VAL

如果排除表中不存在值,我将尝试插入Records表

因此,如果在排除表中找到的值的一部分在Back中找到,则不要插入

排除表的格式为键、值

当我尝试运行此操作时,没有插入任何记录。如果排除表为空,则还需要执行此操作并插入所有记录

TIA

在插入到…值中时不能使用WHERE子句。。陈述 而是使用插入到…选择。。像这样:

INSERT INTO Records(Front, Back) 
SELECT frontvalue, backvalue
WHERE NOT EXISTS (SELECT VALUE FROM Exclusion WHERE INSTR(VALUE, backvalue) > 0)
您可以使用运算符LIKE代替函数INSTR:

不能在插入到…值中使用WHERE子句。。陈述 而是使用插入到…选择。。像这样:

INSERT INTO Records(Front, Back) 
SELECT frontvalue, backvalue
WHERE NOT EXISTS (SELECT VALUE FROM Exclusion WHERE INSTR(VALUE, backvalue) > 0)
您可以使用运算符LIKE代替函数INSTR:


我试过了,但我错了。实际的表有更多的字段,而我在C++中这样做。My code isstring sql=插入RegistryActionTable前、后、配置单元、NormalizedKey、用户名、信号标志、ProcessID、IsProtectionOn、IsBSSMMember、ProcessTime、IsNew、IsAccess、DataValue;sql+=选择;sql+=不存在时,从配置中选择值,其中INSTRVALUE,?>0;从选择?,?,…中删除括号。。。并保留语句之间的空格,然后重试。您需要为backvalue传递两次参数。我删除了,这就成功了。我将backvalue绑定两次。似乎记录正在插入,但很难说结果是否正确。例如,我在配置表中输入值“a”,而我的记录中仍有a。我在配置表中输入值“a”,而我的记录中仍有a。您确定要INSTRVALUE,backvalue>0而不是INSTRbackvalue,value>0吗?我尝试了,但出现了错误。实际的表有更多的字段,而我在C++中这样做。My code isstring sql=插入RegistryActionTable前、后、配置单元、NormalizedKey、用户名、信号标志、ProcessID、IsProtectionOn、IsBSSMMember、ProcessTime、IsNew、IsAccess、DataValue;sql+=选择;sql+=不存在时,从配置中选择值,其中INSTRVALUE,?>0;从选择?,?,…中删除括号。。。并保留语句之间的空格,然后重试。您需要为backvalue传递两次参数。我删除了,这就成功了。我将backvalue绑定两次。似乎记录正在插入,但很难说结果是否正确。ie我在配置表中输入值“a”,而我的记录中仍有a。我在配置表中输入值“a”,而我的记录中仍有a。您确定要INSTRVALUE,backvalue>0而不是INSTRbackvalue,value>0吗?
WHERE VALUE LIKE '%' || backvalue || '%'