The World Of String Functions

So far we've only added or removed data. Sometimes we might want to perform operations on that data. For example, maybe I want to concatenate first_name and last_name.

This section will deal with string functions specifically. All of MySQL's string functions can be found here.

But here's the most popular string functions you'll use 99% of the time:

Pro tip: All of the below string functions can be combined by nesting one inside another.

CONCAT

Use CONCAT alongside a command like SELECT to combine strings together.

-- Returns a new table with a column containing '<first_name> <last_name>' for each row
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM table;

Note: We provide an alias because the new table will default to an ugly header titled CONCAT(first_name, ' ', last_name).

Pro tip: CONCAT_WS is a shortcut variant that adds a separator between every column value. So CONCAT_WS(' - ', first_name, last_name, age) will return the string '<first_name> - <last_name> - <age>'.

SUBSTRING

Use SUBSTRING to select portions of a string, e.g., the last 3 characters.

-- In MySQL, strings are one-indexed, so they start at 1
SELECT SUBSTRING('Hello World', 1, 4); -- Grabs 4 characters starting from the 1st
SELECT SUBSTRING('Hello World', 2); -- Grabs EVERY character starting from the 2nd
SELECT SUBSTRING('Hello World', -3); -- Grabs every character starting from 3rd last

REPLACE

Use REPLACE to replace a portion of a string with another string value.

SELECT REPLACE('Hello World', 'Hell', '!@#$'); -- Becomes '!@#$o World'
SELECT REPLACE('HellO World', 'o', 'x'); -- Becomes 'HellO Wxrld' b/c it's case sensitive

REVERSE

Use REVERSE to literally just reverse a string from, say, 'Hello World' to 'dlroW olleH'.

SELECT REVERSE(title) FROM books; -- returns reverse of all titles

CHAR_LENGTH

Use CHAR_LENGTH to tell you how many characters are in a given string.

-- Returns text with describing character length of author last names
SELECT
  CONCAT(author_lname, ' is ', CHAR_LENGTH(author_lname), ' characters long') AS 'description'
FROM books;

UPPER and LOWER

Use UPPER and LOWER to change the case of a string.

SELECT UPPER('Hello World'); -- returns 'HELLO WORLD'
SELECT LOWER('Hello World'); -- returns 'hello world'

Last updated