2012-05-05 161 views
2

考虑我的数据库以下示例的消息:除去空间

I dont agree with you 
That is something I dont do 
This is another string with dont 
String without d o n t 

每当消息有字符串“不”的话,我想使之成为后删除空间一个术语,用以下单词:

I dontagree with you 
That is something I dontdo 
This is another string with dont 
String without d o n t 

我在我的数据库中有成千上万种这类消息。我可以在PHP中查询数据库,然后执行一个

$message = str_replace(' dont ', ' dont', $message) 

但是这可能会花费更多的时间,然后在SQL中。是否有可能在SQL中进行相同的操作?

回答

4

使用SQL替换()函数:

update mytable set 
mycol = replace(mycol, ' dont ', ' dont') 

你是对的 - 这将是一个很多快于SQL

+0

只是好奇:为什么这是SQL如此之快? – Daan

+0

通常,关系数据库允许您使用更多内存和处理器来处理操作。这个特定的操作可以在多个处理器上进行。在客户端,它通常会被序列化。 –

+1

@GordonLinoff这是**完全**不相关。原因在于行集是在内存中处理的,而不是通过线路传输并返回。 SQL连接*非常*健谈,*这就是为什么它更快。你的“多处理器”原因是垃圾:应用程序服务器可以有多个处理器,而数据库只有一个,但使用SQL的话,它仍然会更快。 – Bohemian