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

前端之家收集整理的这篇文章主要介绍了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助手插件.也许我会自己写一个.

猜你在找的MsSQL相关文章