我正在开发一个离子和SQLITE数据库的移动应用程序。我想要一个场景,其中相同的记录不应该插入两次库存操作。我正在按如下方式检查数据库:
var query = "SELECT COUNT(*) FROM productScan WHERE uniqueId = (?) AND sync = \'N\'";
$cordovaSQLite.execute(db, query, [uniqueId]).then(function (res) {
alert(JSON.stringify(res));
}, function (err) {
alert(JSON.stringify(err));
});这里发生的情况是,当我第一次安装应用程序并运行它,然后在扫描操作之后,当此代码运行重复检查时,即使数据库中没有记录,它也会给出以下输出
{"rows":{"length":1},""rowsAffected":0}我是第一次接触结构化查询语言(SQL)。我无法在这里解析结果。结果是错误的。查询是否需要重新格式化或以任何不同的方式来实现该目标?
耽误您时间,实在对不起。
发布于 2018-09-10 22:01:44
要做到这一点,最好的方法是给
(*)赋予别名。
像这样的东西
db.executeSql("select count(*) AS TOTAL from mydebit where aid = ?", [
parseInt(this.mydata)
]);然后
console.log(data.rows.item(0).TOTAL)因此,我们可以很容易地为返回结果命名,并使用获得行值cheersss.....!
发布于 2016-12-03 20:58:11
我是这样做的
JSON.stringify(data.rows.item(0)['COUNT(*)'])
发布于 2016-04-21 17:49:37
不知何故,我设法以一种不同的方式实现了这一目标。
var query = "SELECT * FROM productScan WHERE uniqueId = (?) AND sync = \'N\'";
$cordovaSQLite.execute(db, query, [uniqueId]).then(function (res) {
if (res.rows.length == 0) {
//processed the operation
}else{
alert('You have already scanned this asset!.');
}https://stackoverflow.com/questions/36765304
复制相似问题