一、SQL删除数据空格函数(Trim、RTrim、LTrim)
1、Trim()函数:前后空格
用来删除数据左右两边(开始和结尾处)的空格。
2、RTrim()函数:后面空格
用来删除数据右边(结尾处)的空格。
3、LTrim()函数:前面空格
用来删除数据左边(开始处)的空格。
注意:Trim()、RTrim()、LTrim() 函数不光可以用于SELECT语句中,还可以用于WHERE等语句中。
4、Replace函数:中间空格
字符中的空格,用replace(string, ' ', '')
语法:
Trim(数据);
或
RTrim(数据);
或
LTrim(数据);
语法举例:
将city表中 name列 的开始处空格去除,并输出所有信息结果。
//处理前面和后面的所有空格
SELECT Trim(name)
FROM city;
//处理前面的空格
SELECT LTrim(name)
FROM city;
//处理后面的空格
SELECT RTrim(name)
FROM city;
//替换字符串中所有的空格
REPLACE(name,' ','')
二、Mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
prefix: 在trim标签内sql语句加上前缀。
suffix: 在trim标签内sql语句加上后缀。
prefixOverrides: 指定去除多余的前缀内容
suffixOverrides: 指定去除多余的后缀内容,如:suffixOverrides="," 去除trim标签内sql语句多余的后缀","
2.下面是一个往用户角色表中插入数据的mybatis语句
sys_user_role(用户角色表)、user_id(用户id)、
<insert id="insertSelective" parameterType="com.feijie.swms.model.SysUserRole">
insert into sys_user_role
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="roleId != null">
role_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="userId != null">
#{userId,jdbcType=INTEGER},
</if>
<if test="roleId != null">
#{roleId,jdbcType=INTEGER},
</if>
</trim>
</insert>
假设没有指定
suffixOverrides=","
执行的sql语句也许是这样的:(观察括号中最后面逗号)
insert into sys_user_role(id,user_id,role_id,) values(1,2,1,);
显然是错误的
指定之后语句就会变成:(观察括号中最后面逗号)
insert into sys_user_role(id,user_id,role_id) values(1,2,1);
这样就将“,”去掉了
前缀也是类似道理。
----------------------------------------------------以下无正文--------------------------------
注:仅供学习,记录问题和参考,共勉!
参考文档:
1、sql中去掉字段的所有空格_Dongguo丶的博客-CSDN博客_sql 去空格
2、SQL 删除数据空格(Trim、RTrim、LTrim函数)_Hern(宋兆恒)的博客-CSDN博客_sql去空格函数
3、mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim> - Roy-Xin - 博客园