MySQL字符串函数
前言
虽然每种数据库软件都支持SQL语句,但是每种数据库却拥有各自所支持的函数。如果想使用数据库软件,除了需要会使用SQL语句外,还需要掌握函数。MySQL中字符串函数主要用来处理字符串。
概览
函数作用CONCAT(str1,str2….,strn)连接字符串str1、str2、……、strn为一个完整字符串INSERT(str,x,y,instr)将字符串从第x位置开始,y个字符常的子串替换为字符串instrLOWER(str)将字符串str中所有字符变为小写UPPER(str)将字符串str中所有字符变为大写LEFT(str,x)返回字符串str中最左边的x个字符RIGHT(str,x)返回字符串str中最右边的x个字符LPAD(str,n,pad)使用字符串pad对字符串str最左边进行填充,直到长度为n个字符长度RPAD(str,n,pad)使用字符串pad对字符串str最右边进行填充,直到长度为n个字符长度LTRIM(str)去掉字符串str左边的空格RTRIM(str)去掉字符串str右边的空格REPEAT(str,x)返回字符串str重复x次的结果REPLACE(str,a,b)使用字符串b替换字符串str中所有出现的字符串aSTRCMP(str1,str2)比较字符串str1和str2TRIM(str)去掉字符串str行头和行尾的空格SUBSTRING(str,x,y)返回字符串str中从x位置起y个字符长度的字符串
示例
//repeat(str,x) mysql> select repeat('jf',3); +----------------+ | repeat('jf',3) | +----------------+ | jfjfjf | +----------------+ //strcmp('str1','str2') //如果str1和str2相同,返回0。 //如果str1第一个字符和str2的第一个字符不同,结束比较,str1的第一个字符ASCII码值大,返回1,否则返回-1。 //如果第一个字符相同,第二个字符不同,结束比较,str1的第二个字符ASCII码值大,返回1,否则返回-1。 //....... //str1和str2相同,返回0 mysql> select strcmp('jf','jf'); +-------------------+ | strcmp('jf','jf') | +-------------------+ | 0 | +-------------------+ //str1大于str2,返回1 mysql> select strcmp('jj','jf'); +---------------------+ | strcmp('jjf','jf') | +---------------------+ | 1 | +---------------------+ //str2大于str1,返回-1 mysql> select strcmp('jf','jj'); +--------------------+ | strcmp('jf','jjf') | +--------------------+ | -1 | +--------------------+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
总结
我们知道,具有可移植性的代码是好代码。在数据库软件中,多数SQL语句是可移植的,而使用了函数的SQL可移植性会降低。主要是由于各种数据库软件都支持自己所特有的函数。因此许多SQL用户不认同使用数据库软件特有的函数。