我正在使用节点JS的bookhelf插件来执行mysql查询。但我不知道如何执行LIMIT查询。像那样
SELECT * from tableName LIMIT 2;
我的连接书架:
Bookshelf.mysqlAuth = Bookshelf.initialize({
client: client,
connection: {
host : host,
user : user,
password : password,
database : database
}
和数据方法:
bookshelf.Img = Bookshelf.Model.extend({
tableName: 'image'
});
您可以在呼叫连接时使用此功能:
var qb = data.Img.query();
qb.where('img_md5', '=', imgMD5save).update({img_size: fileLength, img_local_url: folder, img_type: fileType, img_downloaded: 1}).then(function(){});
我试过
qb.limit(5).then(function(){});
但它发出错误
可能未处理的TypeError:无法调用未定义的方法'apply'
请为此提出任何解决方案。 谢谢!
答案 0 :(得分:1)
在审核了您尝试在qb
模型上执行的操作后,您尝试使用UPDATE
子句运行LIMIT
查询。
LIMIT
可与UPDATE
一起使用,但仅与row count
一起使用。LIMIT
条款,而是强化WHERE
条UPDATE
查询。如果您的目的只是运行带有SELECT
子句的LIMIT
查询,请查看我在下面提供的代码段:
var qb = data.Img.query();
qb
.select('*')
.from('image')
.where('img_md5', '=', imgMD5save)
.limit(2)
.then(function(result){
return result;
})
.catch(function(error) {
throw new error;
});
答案 1 :(得分:1)
根据documention,您可以这样写:
bookshelf.Img.query(function(qb) {
qb.offset(30).limit(10);
})
.fetchAll()
.then(...);
这将从第30张图片开始返回10张图像的集合。