mysql批量去掉/替换某个字段字符中字符?
(1)replace 函数
语法:replace(object,search,replace)
意思:把object中出现search的全部替换为replace
案例:
- update tableName set colunmName=replace(`content`,' ','');//清除tableName表中content字段中的空格
UPDATE cms_organization SET jsyxq=CONCAT(REPLACE(jsyxq,'.','-'),'-01') WHERE length(jsyxq)<=7;
解析:将表cms_organization中jsyxq字段"."替换为“-”;又使用concat函数在字段后拼接了‘-01’;使用length获取字段jsyxq值的长度
(2)mysql trim 函数
语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
以下举例说明:
- mysql> SELECT TRIM(' phpe '); //去掉前后空格
- -> 'phpe'
- mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpexxx'); //使用leading去除字段值前面匹配的字符
- -> 'phpexxx'
示例:SELECT TRIM(LEADING '2016-' FROM jsyxq) from cms_organization where jsyxq is not null; //将字段jsyxq值中开头处匹配‘2016-'字符去掉
- mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphxxx'); //使用both中去除字段值前/后面匹配的字符
- -> 'ph'
- mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpexxyz'); //使用trailing中去除字段值后面匹配的字符
- -> 'phpex'
补充示例:UPDATE cms_organization SET jsyxq=CONCAT(left(jsyxq,5),'0',SUBSTR(jsyxq,6)) WHERE length(jsyxq)<10
解析:LEFT(str,len)
返回字符串str
的最左面len
个字符。
INSTR(str,substr)
返回子串substr
在字符串str
中的第一个出现的位置。这与有2个参数形式的LOCATE()
相同,除了参数被颠倒。