MySQL LIKE Operator

The LIKE operator in MySQL is used in a WHERE clause to search for a specific pattern in a column. It is helpful when the exact value is unknown but a partial match is sufficient — such as finding all names that start with "A" or all emails ending with "@gmail.com".

Wildcard Characters

LIKE uses two special wildcard characters:

WildcardMeaningExample
%Matches zero or more characters'A%' matches Arjun, Anita, Amit
_Matches exactly one character'R_j' matches Raj, Roj, but not Raju

Syntax

SELECT column_name
FROM table_name
WHERE column_name LIKE pattern;

Sample Table

CREATE TABLE employees (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(100),
    email VARCHAR(100),
    city VARCHAR(50)
);

INSERT INTO employees VALUES (1, 'Arjun Mehta', 'arjun@gmail.com', 'Delhi');
INSERT INTO employees VALUES (2, 'Anita Roy', 'anita@yahoo.com', 'Mumbai');
INSERT INTO employees VALUES (3, 'Raj Kumar', 'raj@gmail.com', 'Delhi');
INSERT INTO employees VALUES (4, 'Sunita Das', 'sunita@outlook.com', 'Chennai');
INSERT INTO employees VALUES (5, 'Amit Sharma', 'amit@gmail.com', 'Kolkata');

Pattern Examples

Starts with a Letter

SELECT emp_name FROM employees WHERE emp_name LIKE 'A%';

Returns: Arjun Mehta, Anita Roy, Amit Sharma

Ends with a Pattern

SELECT emp_name, email FROM employees WHERE email LIKE '%@gmail.com';

Returns all Gmail users: arjun@gmail.com, raj@gmail.com, amit@gmail.com

Contains a Word Anywhere

SELECT emp_name FROM employees WHERE emp_name LIKE '%Kumar%';

Returns: Raj Kumar

Exactly One Character Wildcard

SELECT emp_name FROM employees WHERE emp_name LIKE 'Ra_ Kumar';

Returns: Raj Kumar (matches "Ra" + exactly one character + " Kumar")

Fixed Length Pattern

SELECT emp_name FROM employees WHERE city LIKE '_elhi';

Returns: Delhi (one character before "elhi")

NOT LIKE

NOT LIKE returns rows that do not match the pattern.

SELECT emp_name, email FROM employees WHERE email NOT LIKE '%@gmail.com';

Returns employees whose email is not from Gmail.

LIKE with Escape Character

To search for a literal % or _ character in the data, use an escape character.

SELECT * FROM products WHERE product_name LIKE '50\%';

This searches for a product literally named "50%". The backslash escapes the % so it is not treated as a wildcard.

LIKE vs = Operator

OperatorUse Case
=Exact match — finds only rows with the exact value
LIKEPattern match — finds rows that match a partial or flexible pattern

Key Points

  • LIKE searches for a pattern rather than an exact value.
  • % matches any number of characters (including zero).
  • _ matches exactly one character.
  • NOT LIKE returns rows that do not match the pattern.
  • Use a backslash \ to treat % or _ as literal characters in a search pattern.

Leave a Comment

Your email address will not be published. Required fields are marked *