加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:27:35 所属栏目:MsSql教程 来源:网络整理
导读:我想在Rails查询中进行数据库端字符串连接,并以数据库独立的方式执行. SQL-92将双栏(||)指定为连接运算符.不幸的是,看起来MS SQL Server不支持它;它改为使用 我猜测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助手插件.也许我会自己写一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读