如何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张图像的集合。