replace函数使用方法
在使用数据库的时候我们如果需要修改字符串中的部分数据,不去修改全部数据怎么才能做到呢?这种情况下要使用replace函数实现
replace函数不支持正则表达式,所以如果需要替换比较复杂的建议另寻他法
语法
REPLACE ( string_expression , string_pattern , string_replacement )
- string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。
- string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 (‘’)。
- string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。
返回类型- 如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
- 如果任何一个参数为 NULL,则返回 NULL。
使用
查询替换
select *,replace(fname,'Mich','hihi') as fname from employee |
查询替换只是替换结果,不会改变数据库的值,
更新替换
update employee set fname = replace(fname,'a','haha') where emp_id=1; |
这里直接修改了数据库文件,将emp_id为1的数据的fname中的a变成了haha
插入替换
replace into employee(emp_id,fname,lname) values(1,'Michael','smm'); |
总结:向表中“替换插入”一条数据,如果原表中没有emp_id = 1这条数据就作为新数据插入(相当于insert into作用);如果原表中有emp_id = 1这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。这里update是全量的update。
Mysql中的字段属性含义
- PK:primary key 主键
- NN:not null 非空
- UQ:unique 唯一索引
- BIN:binary 二进制数据(比text更大)
- UN:unsigned 无符号(非负数)
- ZF:zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001
- AI:auto increment 自增
- G: Generated Column mysql5.7新特新:这一列由其他列计算而得
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zenshin's blog!
评论