【问题标题】:How to retrieve latest id from a database table in Adonis.js?如何从 Adonis.js 中的数据库表中检索最新的 id?
【发布时间】:2019-01-08 07:17:08
【问题描述】:

我想知道是否可以从数据库表中检索最新的 id?

例如,我有一个User 表,我想在User 表中检索最新的id。有什么办法可以实现吗?

【问题讨论】:

  • 向我们展示一些代码示例。 .. 到目前为止你尝试过什么?

标签: mysql database adonis.js


【解决方案1】:

如果您的 id 字段自动递增,那么您可以使用 MAX(id) 来获取最后插入的 id,对于您的场景,MAX(id) 是最好的解决方案。

【讨论】:

  • 如果有人想检索单个变量,我建议使用getMax('id'),因为max('id') 返回最大值的数组。来源:Documentation
【解决方案2】:

您可以要求 last()pickInverse 模型方法,具体取决于您的版本。

yield User.query().last() // 3.2
await User.pickInverse() // > 4.0

【讨论】:

  • 我试过这个并在控制台日志中显示数据,我使用pickInverse()得到的值是:VanillaSerializer { rows: [ Election { __setters__: [Array], '$attributes': [Object], '$persisted': true, '$originalAttributes': [Object], '$relations': {}, '$sideLoaded': {}, '$parent': null, '$frozen': false, '$visible': undefined, '$hidden': undefined } ], pages: null, isOne: false }这是什么意思?我怎样才能得到身份证?
  • 试试这个(await User.query().last()).idlast() 方法在 4.1 中没有记录,但我试过了,它可以工作
【解决方案3】:

我不确定这是否是您要找的,因为我从未使用过此 Adonis.js,但我希望这会有所帮助:

* createRole () {
  role = new Role();
  role.name = "New Role";
  yield role.save();
  console.log(role);
  return role;
}

yield role.save() 之后的变量 role 将包含最后插入的 id 和其他相关属性。

来源:https://github.com/adonisjs/adonis-framework/issues/241

【讨论】:

  • 在您向我推荐之前,我已经尝试过这个。显然,这适用于您新插入一行之后。就我而言,我只想从表中检索最新的 id。
  • @quratulhzm 太酷了!正如我所说,我不确定这是否是您要寻找的东西!只是想提供帮助,也许我的回答将来会帮助某人;)我很高兴您找到了解决方案!
【解决方案4】:

返回desc中的数据,然后获取.first()的第一个元素。 示例:.

Release.query().orderBy('id', 'desc').first()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多