对于一门课程,我将使用javascript和sqlite3数据库创建一个网站,但是我在查询中获取实际值时遇到了一些麻烦。我有以下代码来检查名称是否已存在于数据库中:
Makefile

当表中的名称为/ isn&t时,记录该行会给出以下输出。
{' EXISTS(SELECT * FROM myTable WHERE name = \' aName \')':1}
{' EXISTS(SELECT * FROM myTable WHERE name = \' aName \')':0}
查询似乎确实有效,因为当数据库中的名称不是0时,行以0结尾,而当数据名称为1时,行结束时为0。现在我尝试做var sqlite3 = require("sqlite3").verbose();
var db = new sqlite3.Database('./myFile.db');
db.serialize(function () {
db.get("SELECT EXISTS (SELECT * FROM myTable WHERE name = 'aName')", function (err, row) {
console.log(row);
if (row == 0) { //Doesn't work
console.log("Name doesn't exist");
}
if (row == 1) { //Doesn't work
console.log("Name does exist");
}
});
});
db.close();
之类的事情,但这不起作用,因为row是一个完整的列表/数组/地图/什么?而不仅仅是0(或1)。
所以我的问题是,有没有办法从行中提取0/1值或真/假?
答案 0 :(得分:0)
我为碰巧遇到类似问题的人找到了解决问题的方法。 EXISTS是一个奇怪的json ish值类型,我仍然不明白,但我找到了一个解决方法。我将查询更改为SELECT * FROM myTable WHERE name = 'aName')
并将if语句更改为if (!row)
如果该行不存在并且已使用第二个else
的{{1}}个instad进行何时排确实存在。