EN
MySQL - LIKE operator
3
points
In this article, we would like to show you how to use LIKE operator in MySQL.
Quick solution:
SELECT `column_1`, `column_2`, `column_3`, `column_n`
FROM `table_name`
WHERE `column_n` LIKE 'pattern'; /* or any other column */
We use LIKE operator in a WHERE clause to find rows that contan column cell that matches indicated pattern.
There are two wildcards used with the LIKE operator:
%- matches 0 or more characters (0, 1, 2, 3, ...),_- matches any single character (requres in_place some character).
| LIKE operator | Description |
|---|---|
| Finds any rows that name cell starts with prefix text. |
| Finds any rows that name cell ends with postfix text. |
| Finds any rows that name cell has middle text somewhere inside. |
|
Finds any rows that
|
Practical example
To understand LIKE operator patterns better way, look at the below examples:
[ PATTERN ] [ EXAMPLE MATCHED TEXTS ]
J% John J Jooohn etc.
Jo% John Jo Jooohn etc.
%n John n an etc.
%hn John hn ahn etc.
%h% John h aha etc.
%oh% John oh aoha etc.
J___ John Jaaa Jbbb etc.
Jo__ John Joaa Jobb etc.
___n John aaan bbbn etc.
__hn John aahn bbhn etc.
_oh_ John aoha bohb etc.
To show how the LIKE operator works, we will use the following table:
Note:
At the end of this article you can find database preparation SQL queries.
Example
In this example, we will display Jonh user row using some LIKE operator cases taken from above patterns.
Queries:
SELECT *
FROM `users`
WHERE `name` LIKE 'J%';
SELECT *
FROM `users`
WHERE `name` LIKE 'Jo%';
SELECT *
FROM `users`
WHERE `name` LIKE '%hn';
SELECT *
FROM `users`
WHERE `name` LIKE '_oh_';
SELECT *
FROM `users`
WHERE `name` LIKE 'J_h%';
Result:
Database preparation
Use below queries to prepare database and test LIKE operator.
create_tables.sql file:
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`surname` VARCHAR(50) NOT NULL,
`department_id` INT(10) UNSIGNED,
`salary` DECIMAL(15,2) NOT NULL,
PRIMARY KEY (`id`)
);
insert_data.sql file:
INSERT INTO `users`
( `name`, `surname`, `department_id`, `salary`)
VALUES
('John', 'Stewart', 1, '3512.00'),
('Chris', 'Brown', 2, '1344.00'),
('Kate', 'Lewis', 3, '6574.00'),
('Ailisa', 'Gomez', NULL, '6500.00'),
('Gwendolyn', 'James', 2, '4200.00'),
('Simon', 'Collins', 4, '3320.00'),
('Taylor', 'Martin', 2, '1500.00'),
('Andrew', 'Thompson', NULL, '2100.00');