在javascript中从(sqlite3)查询中提取值

时间:2018-03-31 19:23:33

标签: javascript sqlite

对于一门课程,我将使用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值或真/假?

1 个答案:

答案 0 :(得分:0)

我为碰巧遇到类似问题的人找到了解决问题的方法。 EXISTS是一个奇怪的json ish值类型,我仍然不明白,但我找到了一个解决方法。我将查询更改为SELECT * FROM myTable WHERE name = 'aName')并将if语句更改为if (!row)如果该行不存在并且已使用第二个else的{​​{1}}个instad进行何时排确实存在。