search
Search
Publish
menu
menu search toc more_vert
Robocat
Guest 0reps
Thanks for the thanks!
close
Comments
Log in or sign up
Cancel
Post
account_circle
Profile
exit_to_app
Sign out
help Ask a question
Share on Twitter
search
keyboard_voice
close
Searching Tips
Search for a recipe: "Creating a table in MySQL"
Search for an API documentation: "@append"
Search for code: "!dataframe"
Apply a tag filter: "#python"
Useful Shortcuts
/ to open search panel
Esc to close search panel
to navigate between search results
d to clear all current filters
Enter to expand content preview
icon_star
Doc Search
icon_star
Code Search Beta
SORRY NOTHING FOUND!
mic
Start speaking...
Voice search is only supported in Safari and Chrome.
Navigate to
A
A
share
thumb_up_alt
bookmark
arrow_backShare
Twitter
Facebook
thumb_up
0
thumb_down
0
chat_bubble_outline
0
auto_stories new
settings

MySQL | NOT LIKE

Database
chevron_right
MySQL
chevron_right
Documentation
chevron_right
Operators
schedule Jul 1, 2022
Last updated
local_offer MySQL
Tags

MySQL's NOT LIKE operator can be used to search for values that do not match a particular string pattern. There are two wildcards that we can use with the NOT LIKE operator: % (percent) and _ (underscore).

Wildcard

Description

%

Takes the place of zero, one or multiple characters

_

Takes the place of one character

Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name NOT LIKE value;

Examples

Consider the following table about some students:

student_id

fname

lname

day_enrolled

age

username

1

Sky

Towner

2015-12-03

17

stowner1

2

Ben

Davis

2016-04-20

19

bdavis2

3

Travis

Apple

2018-08-14

18

tapple3

4

Arthur

David

2016-04-01

16

adavid4

5

Benjamin

Town

2014-01-01

17

btown5

The above sample table can be created using the code here.

Percent wildcard

To return all rows where the lname does not start with 'Dav':

SELECT * FROM students WHERE lname NOT LIKE 'Dav%';
+------------+----------+--------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+----------+--------+--------------+------+----------+
| 1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
| 3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
| 5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
+------------+----------+--------+--------------+------+----------+

Note that the % represents any number of characters after 'Dav'.

To return all rows where the username does not contain 'dav':

SELECT * FROM students WHERE username NOT LIKE '%dav%';
+------------+----------+--------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+----------+--------+--------------+------+----------+
| 1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
| 3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
| 5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
+------------+----------+--------+--------------+------+----------+

Placing % at the start and end allows for a double ended search.

Underscore wildcard

To return students that do not have three letter first names beginning with an 'S' and ending with a 'y':

SELECT * FROM students WHERE fname NOT LIKE 'S_y';
+------------+----------+-------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+----------+-------+--------------+------+----------+
| 2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
| 3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
| 4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
| 5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
+------------+----------+-------+--------------+------+----------+

This query returns students with first names that do not start with 'S', end with 'y' and have 3 characters. We return all students except 'Sky Towner'.

Combining wildcards

To return students whose username does not have 't' as the second character:

SELECT * FROM students WHERE username NOT LIKE '_t%';
+------------+--------+-------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+--------+-------+--------------+------+----------+
| 2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
| 3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
| 4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
+------------+--------+-------+--------------+------+----------+
robocat
Published by Arthur Yanagisawa
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!