MySQL中从数组中选择列的备选方案

MySQL中从数组中选择列的备选方案,mysql,arrays,ruby,Mysql,Arrays,Ruby,还有什么其他方法可以从数组中选择列?result.each{x | put x[1]}似乎不起作用。这是我的密码: require 'mysql2' connect = Mysql2::Client.new(:host :username :password :database) result = connect.query("SELECT * FROM sampletable WHERE name = 'Joshua'") result.each { |x| puts x[1] } 您可

还有什么其他方法可以从数组中选择列?result.each{x | put x[1]}似乎不起作用。这是我的密码:

require 'mysql2'

connect = Mysql2::Client.new(:host :username :password :database)

result = connect.query("SELECT * FROM sampletable WHERE name = 'Joshua'")
result.each { |x| puts x[1] }
您可以使用array.map而不是array.each

假设您想从该结果中获得所有手机号码,您可以执行以下操作

result.map{| r | r['mobile_number']}

每个和地图之间的区别如下所示:

每个简单地迭代给定的可枚举项,为每个值运行块。它丢弃块的返回值,每个块只返回调用它的原始对象

鉴于:

但是,map会在每个元素上迭代,使用块的返回值在每个索引处填充一个新数组并返回该新数组


我们还可以使用与map相同的collect

您能否解释一下为什么要遍历该数组,以及预期的输出是什么。这将只返回索引1中的值,即预期行为?当前,它将放置整行。我想把所选姓名的手机号码Collect和map完全一样-它们是别名谢谢,你的代码运行得非常好。如果我想返回两列?result.map{r|r['mobile_number',r['address']}您将如何操作?map将返回一个数组作为结果,因此,如果您想获得多个列,只需将其作为嵌套数组,如下所示:result.map{r|[r['mobile_number',r['address']],您可以通过此方法获得结果,现在您可以根据需要进行操作。希望我回答了你的问题。或者通过这个结果。map{r | r['mobile_number']和r['address']}。在工作方式上有什么不同吗?对不起,你能更详细地说明一下你的预期结果吗。在它们之间放置AND将导致错误,所以您是否尝试将两者连接起来?