ruby mysql2相当于data_seek(n).fetch_hash

时间:2015-05-31 21:59:59

标签: ruby mysql2

mysql2中对于此

的等效语句是什么
pdfminer

我是ruby的新手,仍然试图将我的文章包裹起来。

1 个答案:

答案 0 :(得分:0)

我不认为mysql2支持data_seek,但您可以使用SQL原生OFFSET,这更好,因为它限制了第一个转移到客户端的数量地点。默认情况下,mysql2会将行作为哈希值返回,因此这不是问题。所以......

sql = <<-SQL
  SELECT cache_amount_with_discount_and_tax
  FROM t_payment
  WHERE organization_id = 1
    AND receipt_id = #{client.escape(param['receipt_id'])}
  LIMIT 1 OFFSET 3
SQL
result = client.query(sql, as: :hash, symbolize_keys: false)
hash_row = result.first

我给出的选项(as: :hash, symbolize_keys: false)是默认选项,除非您更改了默认设置,否则可以将其保留;或者您可以使用它们来自定义您的结果(例如,使用符号列键而不是字符串)。

另外,请注意client.escape位。永远不会将原始用户输入提供给SQL语句,或者Bobby Tables可能是您的下一个客户端。

更好的是使用提供预准备语句和参数绑定支持的抽象库,如Sequel