【问题标题】:Pulling an Integer value from SQL database to be used for calculation从 SQL 数据库中提取一个整数值用于计算
【发布时间】:2019-01-02 16:35:11
【问题描述】:

我在尝试从表中提取数据时遇到了麻烦。我只想从列Diff 中提取整数值,然后添加/减去数字。

完成加/减后,我想用新值更新每一行”

Ruby 中“用户”的我的表格图表

这是我现在的代码

require 'date'
require 'mysql2'
require 'time' 

def test()
  connect = Mysql2::Client.new(:host => "localhost", :username => "root", :database => "rubydb")
  result = connect.query("SELECT * FROM users where Status='CheckOut'")
  if result.count > 0
    result.each do |row|
    stored_diff = connect.query("SELECT * FROM users WHERE Diff")
    #stored_diff = stored_diff.to_s  
    puts stored_diff
    end
  end
end

test()

我确定主题标签中的代码不起作用,因为我越来越喜欢 #Mysql2::Result:0x000000000004863248 等。有人可以帮我解决这个问题吗?

【问题讨论】:

  • Diff 列已设置为 int
  • 这是你的结果集,看起来完全没问题。我想帮助你,但我不清楚你想要实现什么。
  • @Ursus 我想通过添加它来更新现有的“Diff”值。 'time_change = ((Time.parse(row['CheckOutDateTime'].to_s) - Time.parse(row['CheckInDateTime'].to_s)) / 60).round' 所以第 1 行的“Diff”将添加它的原始值到 time_change

标签: mysql ruby


【解决方案1】:

我不知道,但我会根据thisthis 向您展示实现您正在尝试的步骤。

  1. 获取用户Ids 和Diff 号码。

    SELECT `Id`, `Diff` FROM users where `Status`='CheckOut'
    
  2. 迭代result

    result.each do |row|
    
  3. DiffId 分配给变量。

    usrId = #{row['Id']};
    diffCal = #{row['Diff']};
    
  4. diffCal变量进行计算。

  5. 执行UPDATE 查询。

    UPDATE `users` SET `Diff` = '#{diffCal}' WHERE `Id` = '#{usrId}'
    

【讨论】:

  • 如何将Diff 赋值给变量?
  • 是的,对不起
猜你喜欢
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 2021-07-23
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多