我的代码片段:
var sql = "SELECT name,data, COUNT(name) as 'mycount' FROM floodMaps WHERE name='?' GROUP BY name,data";
db.transaction(function(tx) {
tx.executeSql(sql,[flodMapName], function(tx,res){
//console.log(res.rows.item(0).data);
console.log(res.rows.item(0).mycount);
if(res.rows.item(0).mycount > 0) {
console.log('GETTING DATA FROM DB...');
它会抛出错误:
没有错误处理程序的语句失败:无法绑定索引1处的参数,因为索引超出范围。该语句有0个参数。
我试图在同一时间从表中获取数据,但遗憾的是它不起作用。我做了我的研究,我没有找到plugin的好文档。
这就是我创建表格的方式:
document.addEventListener("deviceready", function(){
//database
db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'});
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS floodMaps (name text primary key, data text)');
tx.executeSql('DELETE FROM floodMaps');
}, function(error) {
console.log('Create Table ERROR: ' + error.message);
}, function() {
console.log('Table created successfully.');
});
//end database
}, false);
整个代码为here。
答案 0 :(得分:2)
我认为?
参数占位符不是单引号。试试这个:
var sql = "SELECT name, data, COUNT(name) as `mycount` FROM floodMaps WHERE name= ? GROUP BY name, data";
答案 1 :(得分:0)
我猜你根本不必使用单引号来表示别名。您可以按如下方式使用:
SELECT name,data, COUNT(name) as mycount FROM floodMaps WHERE name=?
查看此计数查询示例official link。