附:小提示
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