1.replace()函数
可用此函数去掉字段中存在的空格
replace(object,search,replace)//把object字段中出现search的全部替换为replace
//将table_xxx表中description字段的空格全部替换掉,所以不只是清除一个空格
update `table_xxx` set `description`=replace(`description`,' ','');
2.LENGTH(str)与CHAR_LENGTH(str)函数
LENGTH(str): 返回字符串str的字节长度 注意:一个汉字为3字节
CHAR_LENGTH(str):返回字符串的长度, 多字节字符算作单个字符.
3.trim()函数
mysql> SELECT TRIM(' bar '); --删除首尾空格
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); --删除指定的首字符 x
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); --删除指定的首尾字符 x
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); --删除指定的尾字符 x
-> 'barx'
4.REGEXP 正则函数,具体用法不总结了,查资料吧
5.substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
例子:str=www.baidu.com
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.baidu
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:baidu.com
有人会为,如果我呀中间的的baidu怎么办?
很简单的,两个方向:
从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),‘.’,1);
这部分摘自:https://www.cnblogs.com/mqxs/p/7380933.html
利用substring_index还可以将行转列
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('1,2,3,4,5,6',',',help_topic_id+1),',',-1) AS Id
FROM mysql.help_topic
WHERE help_topic_id<(LENGTH('1,2,3,4,5,6')-LENGTH(REPLACE('1,2,3,4,5,6',',',''))+1);
6.CAST()和CONVERT()
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:
CAST(value as type);
CONVERT(value, type);
就是CAST(xxx AS 类型), CONVERT(xxx,类型)。
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED