MySQL批量去掉某个字段中的空格

Mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数。

(1)mysql replace 函数

语法:replace(object,search,replace)

意思:把object中出现search的全部替换为replace

案例:清除news表中content字段中的空格
update `news` set `content`=replace(`content`,' ','');

(2)mysql trim 函数

语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

以下举例说明:

mysql> SELECT TRIM(' phpernote ');
-> 'phpernote'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx');
-> 'phpernotexxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx');
-> 'phpernote'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz');
-> 'phpernotex'

MySQL数据库中插入数据的时候,由于疏忽,有一列文字有些行前面多了一个空格,出于强迫症以及避免以后可能出现问题,我决定把这个空格给干掉,在网上搜到的方法大多数是直接使用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 ';

总结

以上就是本文关于MySQL批量去掉某个字段中的空格的全部内容,希望对大家有所帮助,感兴趣的朋友可以参阅:MySQL 声明变量及存储过程分析、几个比较重要的MySQL变量、mysql数据库开发规范【推荐】等。有什么问题可以随时留言,大家一起交流讨论。

(0)

相关推荐

  • MYSQL 批量替换之replace语法的使用详解

    实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:SELECT出来str_replace替换UPDATE写入实际这样极其浪费资源以及消耗资源,MYSQL内置了一个批量替换的语法 复制代码 代码如下: UPDATE table SET field = replace(field,'被替换','替换成') 直接就替换了,后面也可以跟WHERE 条件语句支持多个词同时被替换 复制代码 代码如下: UPDATE table SET field = replace(field,'被

  • MYSQL的REPLACE和ON DUPLICATE KEY UPDATE语句介绍解决问题实例

    在对看看的后台进行排序的时候,遇到了一个像这样的需求,在电影表中有ID(主键自增)和orderby(排序字段) ,假设有十条数据id分别从1-10之间,对应的orderby也是从1-10之间,我现在想把id=9的数据移动到第三的位置(id=3)的这个位置,并且保证之前的数据排列顺序(即id=3的orderby=4,id=4的orderby=5-id=8的orderby=9),这样如果用循环的形式是可以解决数据的问题,但是这样操作数据库过程太多,现在就想用一条sql语句来解决这个问题. 下面来看看

  • MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

    看下面的例子吧: 1 Replace into ...1.1 录入原始数据mysql> use test;Database changedmysql> mysql> CREATE TABLE t1 SELECT 1 AS a, 'c3' AS b, 'c2' AS c;ALTER TABLE t1 CHANGE a a INT PRIMARY KEY AUTO_INCREMENT ;Query OK, 1 row affected (0.03 sec)Records: 1  Duplic

  • mysql中使用replace替换某字段的部分内容

    最近有个朋友提到如何使用sql来删除一个字段中部分内容,于是就写了这篇文章,简单记过: 测试表如下: 复制代码 代码如下: CREATE TABLE `t` (      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,      `domain` tinytext,      PRIMARY KEY (`id`)    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 插入测试内容: 复制代码

  • MySQL中replace into语句的用法详解

    在向表中插入数据的时候,经常遇到这样的情况: 1.首先判断数据是否存在: 2.如果不存在,则插入: 3.如果存在,则更新.   在 SQL Server 中可以这样写: 复制代码 代码如下: if not exists (select 1 from table where id = 1) insert into table(id, update_time) values(1, getdate()) else update table set update_time = getdate() whe

  • MySQL批量去掉某个字段中的空格

    Mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例:清除news表中content字段中的空格 update `news` set `content`=replace(`con

  • Oracle删除字段中的空格、回车及指定字符的实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao --Date:2016-03-01 colname varchar(20); --列名 cnt number; --包含换行符的列的行数 v_sql varchar(2000); --动态SQL变量 begin --读取表中的列 for col i

  • 批量替换 MySQL 指定字段中的字符串

    批量替换的具体语法是: 复制代码 代码如下: UPDATE 表名 SET 指定字段 = replace(指定字段, '要替换的字符串', '想要的字符串') WHERE 条件; 如果你想把 article 表中 ID 小于5000的记录,content 字段中"解决"替换成"解放",那么语法就是: 复制代码 代码如下: UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000

  • Mysql中批量替换某个字段的部分数据(推荐)

    MYSQL中批量替换某个字段的部分数据,具体介绍如下所示: 1.修改字段里的所有含有指定字符串的文字 UPDATE 表A SET 字段B = replace(字段B, 'aaa', 'bbb') example: update table set url= replace(url, 'aaa', 'bbb') [将url字段中的aaa批量更改为bbb] update table set url= REPLACE (url,'3','1.png') where 条件; 2.常规条件修改: upda

  • Python操控mysql批量插入数据的实现方法

    在Python中,通过pymysql模块,编写简短的脚本,即方便快捷地控制MySQL数据库 一.连接数据库 使用的函数:pymysql.connect 语法:db=pymysql.connect(host='localhost',user='root',port=3306,password='Your password',db='database_name') 参数说明:host:MySQL服务器地址                           user:用户名             

  • Mysql中如何批量替换某个字段的值:replace

    目录 如何批量替换某个字段的值:replace 批量替换某个字段的部分数据 如何批量替换某个字段的值:replace 例如我们有一个表: mxd_goods 中字段goods_pic的值要全部去掉goods/ 现在要将该表中的所有goods_pic字段的值去掉goods/. 那么我们怎么来做呢? update  mxd_goods set goods_pic= replace(goods_pic, 'goods/', ''); 注:goods_pic是表字段值,goods/ 是被替换的值,即搜索

  • 在MySQL字段中使用逗号分隔符的方法分享

    被分割的字段一定是有限而且数量较少的,我们不可能在一个字符串中存储无限多个字符 这个字段所属的表与这个字段关联的表,一定是一对多的关系 比如下面这个表结构所代表的content与tag这两个对象 复制代码 代码如下: mysql> SELECT * FROM content; +----+------+| id | tags | +----+------+| 1 | 1,2 | | 2 | 2,3 | +----+------+ 2 rows in set (0.01 sec) mysql>

  • Mysql两种情况下更新字段中部分数据的方法

    Mysql更新字段中部分数据第一种情况:  复制代码 代码如下: update tab set A = concat(substring(A,1,3),'bbb'); 从A的1个字符开始取3个字符,加上'bbb',再写入a中,如果A原始值为'123aaa',那么更新之后为'123bbb'了. 如果我们要将字段A值中的包含的1,替换成2呢? 例如:a=2211,现在要替换成2222,就是把1换成2 SQl语句这么写: 复制代码 代码如下: update table set a=REPLACE(a,

  • MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    1例如:要把如图1的字段拆分图2 select account_id, substring_index(substring_index(a.related_shop_ids,',' ,b.help_topic_id+1),',',-1) shopid from sales_hang_account a join mysql.help_topic b on b.help_topic_id < (length(a.related_shop_ids) - length(replace(a.relate

  • mysql中如何判断当前是字符 mysql判断字段中有无汉字

    使用length与char_length两个函数 length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符 char_length:不管汉字还是数字或者是字母都算是一个字符 对同一字段分别使用length.char_length计算长度,并进行比较长度相同则字段中无汉字,不相同则肯定有汉字 复制代码 代码如下: SELECT   * FROM  t_ad t WHERE t.`userid` = 974   AND LENGTH(    REPLACE(REPLACE(t.`

随机推荐