循环遍历表中所有条目并将字符串的所有实例替换为另一个条目的最有效方法是什么。
例如,我有一些我要替换的传统bb代码......
替换:[img]/images/emoticons/happy.png[/img]
或<img src="/images/emoticons/happy.png">
使用::)
答案 0 :(得分:0)
最快的方法是让数据库完成所有工作:
connection.execute(%q{
update your_table
set your_column = replace(
replace(
your_column,
'<img src="/images/emoticons/happy.png">',
':)'
),
'[img]/images/emoticons/happy.png[/img]',
':)'
)
})
如果你的源或目标字符串包含引号(或者如果你不是手工编写它们),那么使用connection.quote
:
from1 = connection.quote('<img src="/images/emoticons/happy.png">')
from2 = connection.quote('[img]/images/emoticons/happy.png[/img]')
to = connection.quote(':)')
connection.execute(%Q{
update your_table
set your_column = replace(replace(your_column, #{from1}, #{to}), #{from2}, #{to}))
})