mysql 字符串常用操作

附:小提示

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 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值