发新话题
打印

mysql中replace的用法

mysql中replace的用法

之所以在这里发下,也是因为我看过几本php+mysql的书,都没有提到这个。

1.replace into
replace into table (id,name) values('1','aa'),('2','bb')
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values('1','aa'),('2','bb')
如果存在相同的值则不会插入数据
2.replace(object,search,replace)
把object中出现search的全部替换为replace
select replace('www.163.com','w','Ww')--->WwWwWw.163.com
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')

TOP

引用:
1.replace into
replace into table (id,name) values('1','aa'),('2','bb')
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values('1','aa'),('2','bb')
如果存在相同的值则不会插入数据
如果存在相同的值,应该是替换掉以前的数据吧?
引用:

例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')
这句跟 update table set name=bb where name=aa
作用上看来是一样的吧,在效率上有什么优劣吗?

TOP

引用:
原帖由 xinglu1983 于 2008-3-23 10:17 发表


如果存在相同的值,应该是替换掉以前的数据吧?



这句跟 update table set name=bb where name=aa
作用上看来是一样的吧,在效率上有什么优劣吗?
这种方式并不是标准SQL里面的,不过replace比较好用

TOP

引用:
如果存在相同的值,应该是替换掉以前的数据吧?
引用:

例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')
这句跟 update table set name=bb where name=aa
作用上看来是一样的吧
其实不是真实的替换,它发现某个唯一字段值已经存在,会删除这条记录,再新插入一条新的记录。可以测试一下,设置一个自动增长的主键,就会发现主键值在不断变化
广告位招租。

TOP

发新话题