mybatis自动构建时怎么处理有空格字段

哎,记得有一次项目里,一个字段里存了用户填写的地址信息,结果大家都发现导出的数据里,地址前后多了一堆空格,看着乱糟糟的。
我当时就头疼啊,想着这可咋整。
后来我就想起了SQL里的那些字符串函数,对,就是LTRIM、RTRIM和TRIM那些家伙。

当时我就在数据库里试了试,LRIM去左边空格,RTRIM去右边空格,TRIM去前后空格,效果不错。
然后在MyBatis的MapperXML里直接写上了这些函数,比如这样:
sql SELECT TRIM(trimmed_column_name) FROM table_name WHERE ...
这回导出来的数据就清爽多了。
不过说起来,还得注意一点,就是得确认你的数据库支持这些函数,不是所有数据库都兼容的。
记得有一次和一个同事讨论这个问题,他用的数据库就不支持LTRIM,只能用别的方法去处理。
所以,这块儿得根据实际情况来定。

总之,这招还是挺实用的,以后再遇到这种问题,我肯定先想到它。
哎,想起那堆乱糟糟的地址信息,真是让人头大啊。
😂

怎么写sql 语句,能删除某个字段中的某些内容?

说实话,这事儿吧,用更新比直接删省心多了。
你想啊,直接删掉,万一整错了,数据没了可咋办?
用SQL的UPDATE语句就行。
比如有个表叫users,里面有个name字段,你想把里面所有的空格都干掉。
咋办?用REPLACE函数。

就这么写:UPDATE users SET name = REPLACE(name, '', '') WHERE name IS NOT NULL;
看见没?REPLACE后面第一个空,是要去掉啥;第二个空,是换成啥。
这里两个空连着,就是啥也不干,相当于把空格给抹了。

要是想干掉@号呢?也差不多。
假设有个email字段,你想把所有的@都删掉。
那语句就成这样:UPDATE users SET email = REPLACE(email, '@', '') WHERE email IS NOT NULL;
记住啊,这里的WHERE name IS NOT NULL或者WHERE email IS NOT NULL这玩意儿很重要。
防止把空的也整没了,那多亏呀。

再强调一句,用UPDATE的时候,WHERE子句的条件一定要看明白。
别到时候一不小心,把不该改的都改了。
这事儿挺麻烦的,我以前就犯过错。

还有啊,数据多的时候,别一股脑儿全更新。
先拿一小块数据试试,看看语句行不行。
万一REPLACE函数搞错了,或者条件写得不对,那损失可就大了。

总的来说,用更新代替删除,能控制得更细。
避免不必要的麻烦。

sql中trim函数怎么用 3个实例教你用trim清除字符串空格

TRIM移除前后空格。

SQL Server用LTRIM和RTRIM。

移中间空格,用REPLACE。

大数据量,应用层处理。

MySQL、PostgreSQL、Oracle支持标准TRIM。

SQL Server需LTRIM和RTRIM。

你自己掂量。