您的位置:首页 > 数据库 > MySQL

mysql 字符串常用操作

2017-03-09 17:54 260 查看

附:小提示

MySQL必要时自动变换数字为字符串,并且反过来也如此:

mysql> SELECT 1+”1”; -> 2

mysql> SELECT CONCAT(2,’ test’); -> ‘2 test’

– ASCII(char)返回字符的ASCII码值

– BIT_LENGTH(str)返回字符串的比特长度

SELECT ASCII("张"),BIT_LENGTH('a')


– CONCAT(s1,s2…,sn)将s1,s2…,sn连接成字符串

– CONCAT_WS(sep,s1,s2…,sn)将s1,s2…,sn连接成字符串,并用sep字符间隔

SELECT concat('a','b','c'),concat_ws(',','a','b','c',1)


– INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果

SELECT INSERT('hello i am a good boy',1,5,'oh no!')


– FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置

SELECT FIND_IN_SET('b','a,b,c,d');   >2


– LCASE(str)或LOWER(str) 返回将字符串str中所有字符改变为小写后的结果

– UCASE(str)或UPPER(str) 返回将字符串str中所有字符转变为大写后的结果

SELECT LCASE(username),LOWER(username),UCASE(username),UPPER(username)  FROM USER u;


– LEFT(str,x)返回字符串str中最左边的x个字符

– RIGHT(str,x) 返回字符串str中最右边的x个字符

SELECT LEFT('hello i am a good boy',5)
SELECT RIGHT('hello i am a good boy',3)


– LENGTH(s)返回字符串str中的字符数

– LTRIM(str) 从字符串str中切掉开头的空格

– RTRIM(str) 从字符串str中切掉结尾的空格

SELECT length(' i am
4000
a good boy '),LTRIM('  i am a good boy   '),RTRIM('  i am a good boy   '),'i am a good boy'


– POSITION(substr IN str) 返回子串substr在字符串str中第一次出现的位置

– LOCATE(substr,str) 返回子串substr在字符串str中第一次出现的位置

select POSITION('boy' IN 'i am a good boy'),LOCATE('boy' , 'i am a good boy')


– QUOTE(str) 用反斜杠转义str中的单引号

SELECT QUOTE('don\`t')  -- 结果 'don`t'


– REVERSE(str) 返回颠倒字符串str的结果

select reverse('i am a good boy')


– REPEAT(str,x)返回字符串str重复x次的结果

SELECT REPEAT('good',3)


– STRCMP(s1,s2)比较字符串s1和s2

– 相等时返回 0,当第一个参数小于第二个时 -1 ,否则 1

SELECT strcmp('asd','asd'),strcmp('asd','bsd'),strcmp('bsd','asd')   -- 结果 0,-1,1


– TRIM(str)去除字符串首部和尾部的所有空格

select TRIM('  i am a good boy   ')


– SUBSTRING(str,index,length) 把str从index位置截取length长度

select substring('example.com', 4, 2);


– select substring_index(str,x,num); 返回str中第num个x字符串之前的内容

select substring_index('www.111cn.net', '.',1)


– select instr(str,x) 返回str中x字符串的位置

select instr('www.111cn.net','cn')


– if(param,表达式1,表达式2)

当param为true或大于0时,执行表达式1,为false或0 时,执行表达式2

SELECT if(2,'TRUE','false')        >true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: