如何检查查询结果是否为空

时间:2013-05-15 20:17:43

标签: javascript sqlite web-sql

tx.executeSql("SELECT * FROM Routes WHERE id_object = 0", [], 
function (tx, result) 
{ 
alert('You already added'); 
},
function (tx, error) { 
tx.executeSql('INSERT INTO Routes (id_object) VALUES (0)');             
alert('add successfull')} ) 
}  

如果SELECT * FROM Routes WHERE id_object = 0的结果集为空,则应执行tx.executeSql('INSERT INTO Routes (id_object) VALUES (0)');

1 个答案:

答案 0 :(得分:1)

id_object是唯一的(即主键,还是声明UNIQUE)?如果是这样,你可以简单地

INSERT OR IGNORE INTO Routes (id_object) VALUES (0);

如果无法使id_object列成为唯一,那么您需要有时称为UPSERT(更新或插入)语句的内容。 SQLite不直接支持这一点,但也许您可以通过组合触发器来实现它。

到目前为止,最简单的方法是在程序的逻辑中而不是在SQL中进行测试,例如,基于

SELECT COUNT(*) FROM Routes WHERE id_object = 0"

如果结果为0则执行插入。