图片.png
注意:MySQL中,字符串的位置是从1开始的。

ASCII - LENGTH

  1. SELECT ASCII('Abcdfsf'),CHAR_LENGTH('hello'),CHAR_LENGTH('我们'),
  2. LENGTH('hello'),LENGTH('我们')
  3. FROM DUAL;

CONCAT - CONCAT_WS

xxx worked for yyy
SELECT CONCAT(emp.last_name,' worked for ',mgr.last_name) "details"
FROM employees emp JOIN employees mgr
WHERE emp.`manager_id` = mgr.employee_id;

SELECT CONCAT_WS('-','hello','world','hello','beijing')
FROM DUAL;

INSERT - RIGHT

#字符串的索引是从1开始的!
SELECT INSERT('helloworld',2,3,'aaaaa'),REPLACE('hello','lol','mmm')
FROM DUAL;

SELECT UPPER('HelLo'),LOWER('HelLo')
FROM DUAL;

SELECT last_name,salary
FROM employees
WHERE LOWER(last_name) = 'King';

SELECT LEFT('hello',2),RIGHT('hello',3),RIGHT('hello',13)
FROM DUAL;

字符串函数 - 图2

LPAD - STRCMP

# LPAD:实现右对齐效果
# RPAD:实现左对齐效果
SELECT employee_id,last_name,LPAD(salary,10,' ')
FROM employees;

SELECT CONCAT('---',LTRIM('    h  el  lo   '),'***'),CONCAT('---',RTRIM('    h  el  lo   '),'***'),TRIM('oo' FROM 'ooheollo')
FROM DUAL;

SELECT REPEAT('hello',4),LENGTH(SPACE(5)),STRCMP('abc','abe')
FROM DUAL;

SUBSTR - FIELD

字符串函数 - 图3

SELECT SUBSTR('hello',2,2),LOCATE('lll','hello'),ELT(2,'a','b','c','d'),FIELD('mm','gg','jj','mm','dd','mm')
FROM DUAL;

FIND_IN_SET - NULLIF

图片.png

SELECT FIND_IN_SET('mm','gg,mm,jj,dd,mm,gg'),reverse("huanhuan");
FROM DUAL;

SELECT employee_id,NULLIF(LENGTH(first_name),LENGTH(last_name)) "compare"
FROM employees;