微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails中与数据库无关的SQL字符串连接

我想在Rails查询中进行数据库端字符串连接,并以数据库独立的方式执行.

sql-92将双栏(||)指定为连接运算符.不幸的是,看起来MS sql Server不支持它;它改为使用

我猜测Rails的sql语法抽象已经解决数据库特定的运算符问题.如果它存在,我该如何使用它?

解决方法

我有同样的问题,从来没有想到Rails内置的任何东西.所以我写了这个小方法.
# Symbols should be used for field names,everything else will be quoted as a string
def db_concat(*args)

  adapter = configurations[RAILS_ENV]['adapter'].to_sym
  args.map!{ |arg| arg.class==Symbol ? arg.to_s : "'#{arg}'" }

  case adapter
    when :MysqL
      "CONCAT(#{args.join(',')})"
    when :sqlserver
      args.join('+')
    else
      args.join('||')
  end

end

我在想,有人应该写一些可以使用正确的函数或操作符来自动格式化简单的sql表达式的一些sql助手插件.也许我会自己写一个.

原文地址:https://www.jb51.cc/mssql/82259.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐