我有一个数据集,我正在尝试按字母顺序排序。 很多记录的开头都有一个"the"。 我想查询带有"The"(即。 爱尔兰酒吧)并将"The"移动到字符串的末尾并用逗号连接(即"爱尔兰酒吧")。
我觉得这应该是一个要查询然后更新的正则表达式。 这似乎有点笨拙,必须有一个优雅的解决方案,因为它并不是一个罕见的要求。
regexp = w+[The] (?????)
records = Record.where("title LIKE ?", regexp)
records.each do |record|
record.title = "title witthou the the + ", The"
record.save
end
您可以使用
它来查找以"the"开头的记录(编辑为不区分大小写):
records = Record.where("lower(title) LIKE :prefix", prefix: "#{the}%")
然后使用 sub 替换"the",然后更新记录:
records.each do |r|
r.title = r.title.sub(/the/i, "")
r.title = "#{r.title}, The"
r.save
end