首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby SQlite选择返回不需要的数组

Ruby SQlite选择返回不需要的数组
EN

Stack Overflow用户
提问于 2017-12-07 16:20:41
回答 1查看 515关注 0票数 0

我正在尝试从sqlite数据库中获取两个值,但是它不是返回我是SELECT-ing的值,而是在另一个数组中的数组中返回该值。

我的代码:

代码语言:javascript
运行
复制
def self.find(id, database_connection)
  name = database_connection.execute("SELECT name FROM pokemon WHERE id = ?", id)
  type = database_connection.execute("SELECT type FROM pokemon WHERE id = ?", id)

  pokemon_inst = Pokemon.new(id: id, name: name, type: type, db: database_connection)
end

问题:

当我运行pry.binding

name输出[["Pikachu"]]

type输出[["electric]]

这个工作正常吗?我无法想象我应该打电话给name[0][0]来访问数据,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-07 17:36:29

execute()方法将它返回的所有内容封装在一个数组中,每个数据库行都放在一个数组中。因此,对于被查询的单个值在两个数组中是正确的。

由于一切都正常工作,所以我将根据以下情况调整代码:

代码语言:javascript
运行
复制
def self.find(id, database_connection)
  pokemon = database_connection.execute("SELECT * FROM pokemon WHERE id = ?", id).flatten
  name = pokemon[1]
  type = pokemon[2]

  pokemon_inst = Pokemon.new(id: id, name: name, type: type, db: database_connection)
end

这些调整是在数组被分配查询数据时对flatten进行调整,并分配来自该数组的单个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47699403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档