Ruby 如何使用sequel将字符串与表字段合并
我想用一个续集版本替换一个旧的sql语句,但在创建一个具体字段时遇到了一些问题 例如:Ruby 如何使用sequel将字符串与表字段合并,ruby,concatenation,concat,sequel,Ruby,Concatenation,Concat,Sequel,我想用一个续集版本替换一个旧的sql语句,但在创建一个具体字段时遇到了一些问题 例如: require 'sequel' DB = Sequel.sqlite DB.create_table(:test){ field :text, :type => :nvarchar, :size => 5 } DB[:test].insert('aa') DB[:test].insert('bb') DB[:test].insert('cc') sel = DB[:test].selec
require 'sequel'
DB = Sequel.sqlite
DB.create_table(:test){
field :text, :type => :nvarchar, :size => 5
}
DB[:test].insert('aa')
DB[:test].insert('bb')
DB[:test].insert('cc')
sel = DB[:test].select(
(:text + '1' ).as(:concat)
)
puts sel.sql
puts sel.all
这很好,结果是:
SELECT (`text` || '1') AS 'concat' FROM `test`
{:concat=>"aa1"}
{:concat=>"bb1"}
{:concat=>"cc1"}
我的问题是:我需要“1aa”。对于SQL,这是没有问题的:
puts DB.fetch("SELECT ('1' || `text`) AS 'concat' FROM `test`").all
但使用ruby时,我遇到了一个语法错误,无法将符号转换为字符串TypeError:
有趣的是,这又起作用了:
sel = DB[:test].select(
(:text + '1' + :text).as(:concat)
)
puts sel.sql
puts sel.all
但是我怎样才能定义一个字符串呢?只要看看字符串操作符就知道了
sel = DB[:test].select(
Sequel.join(['1', :text]).as(:concat)
)
puts sel.sql
puts sel.all
备注:-我需要一些时间才能得到它。请看字符串运算符
sel = DB[:test].select(
Sequel.join(['1', :text]).as(:concat)
)
puts sel.sql
puts sel.all
备注:-我需要一些时间来得到它