如何解决ActiveRecord:多语句查询中忽略第一个查询的结果
我正在使用ActiveRecord和Mysql(通过makara适配器通过mysql2)使用ActiveRecord进行多语句查询,并且尝试将结果存储在数组中。但是我没有得到第一个查询的结果。下面是代码片段。请让我知道我在这里想念什么。
ActiveRecord::Base.transaction do
client = ActiveRecord::Base.connection.raw_connection
test_sql = "select id,email from members where id = 1; select id,pref member_prefs where member_id = 1;"
client.query(test_sql)
res = []
while client.next_result
res << client.store_result
end
puts "res size: #{res.size}"
res.each do |row|
puts "row: #{row.to_json}"
end
end
Output:
res size: 1
row: [[1,3]]
If I add "select 1; " before the query,it gives me two results(though the output of the 1st query is missing)
Output:
res size: 2
row: [[1,abc@def.com]]
row: [[1,3]]
谢谢
解决方法
我找到了。可能是愚蠢的错误。放在这里供参考。
第一个查询的结果作为client.query(test_sql)
语句的响应返回。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。