如何select书架nodeJS的LIMIT mysql
我正在使用节点JS的书架插件来执行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”
请为此提出任何解决scheme。 谢谢!
在查看你正在试图在你的qb
模型上执行的操作之后,你试图运行带有LIMIT
子句的UPDATE
查询。
-
LIMIT
可以与UPDATE
一起使用,但只能使用row count
。 - 引用这个StackOverflow的问题
- 而不是在您的更新使用
LIMIT
子句,我会build议加强您的WHERE
子句的UPDATE
查询。
如果你的意图只是运行一个带有LIMIT
子句的SELECT
查询,请看下面我提供的代码片段:
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; });
根据文件,你可以这样写:
bookshelf.Img.query(function(qb) { qb.offset(30).limit(10); }) .fetchAll() .then(...);
这将返回从第30张图像开始的10张图像的集合。