mySQL中replace的⽤法
Mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使⽤mysql⾃带的 replace 函数,另外还有个 trim 函数。
(1)mysql replace 函数
语法:replace(object,search,replace)
意思:把object中出现search的全部替换为replace
案例:
1. update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格
(2)mysql trim 函数
字符串replace函数语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
以下举例说明:
1. mysql> SELECT TRIM(' phpernote  ');
2. -> 'phpernote'
1. mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx');
2. -> 'phpernotexxx'
1. mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx');
2. -> 'phpernote'
1. mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz');
2. -> 'phpernotex'
中插⼊数据的时候,由于疏忽,有⼀列⽂字有些⾏前⾯多了⼀个空格,出于强迫症以及避免以后可能出现问题,我决定把这个空格给⼲掉,在⽹上搜到的⽅法⼤多数是直接使⽤replace:
UPDATE example
SET col = replace(col, ' ', '')
WHERE col replace '^ ';
使⽤这种⽅法固然可以把⾏⾸的空格去掉,但是列中⽂字间⽤于分割词语的空格也会被去掉,⼀⼤⽚⽂字会连起来,故不可⾏。
后来我想使⽤replace的时候能不能使⽤正则来匹配呢,⼏番搜索的结果是不可⾏。
最后我想了⼀个我认为较为简单可⾏的⽅法:
⾸先使⽤CONCAT()在有空格的⾏前⾯加⼀个字符‘x’:
UPDATE example
SET col = CONCAT('x', col)
WHERE col REGEXP '^ ';
这样下来⾏前⾯多了两个字符 ‘x ‘。
然后使⽤REPLACE来把多的两个字符⼀起去掉:
UPDATE example
SET col = REPLACE(col, 'x ', '')
WHERE col REGEXP '^x ';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。