Python MySQL – LIKE() operator
Last Updated :
28 Apr, 2021
In this article, we will discuss the use of LIKE operator in MySQL using Python language.
Sometimes we may require tuples from the database which match certain patterns. For example, we may wish to retrieve all columns where the tuples start with the letter ‘y’, or start with ‘b’ and end with ‘l’, or even more complicated and restrictive string patterns. This is where the LIKE Clause comes to the rescue, often coupled with the WHERE Clause in SQL.
There are two kinds of wildcards used to filter out the results:
- The percent sign (%): Used to match zero or more characters. (Variable Length)
- The underscore sign (_): Used to match exactly one character. (Fixed Length)
Syntax:
SELECT column1, column2, …,columnn
FROM table_name
WHERE columnn LIKE pattern;
The following are the rules for pattern matching with the LIKE Clause:
Pattern |
Meaning |
‘a%’ |
Match strings which start with ‘a’ |
‘%a’ |
Match strings with end with ‘a’ |
‘a%t’ |
Match strings which contain the start with ‘a’ and end with ‘t’. |
‘%wow%’ |
Match strings which contain the substring ‘wow’ in them at any position. |
‘_wow%’ |
Match strings which contain the substring ‘wow’ in them at the second position. |
‘_a%’ |
Match strings which contain ‘a’ at the second position. |
‘a_ _%’ |
Match strings which start with ‘a’ and contain at least 2 more characters. |
In order to use LIKE operations we are going to use the below table:
Below are various examples that depict how to use LIKE operator in Python MySQL.
Example 1:
Program to display rows where the address starts with the letter G in the itdept table.
Python3
import mysql.connector
database = mysql.connector.connect(
host = "localhost" ,
user = "root" ,
password = "",
database = "gfg"
)
cur_object = database.cursor()
print ( "like operator address starts with G" )
find = "SELECT * from itdept where Address like 'G%' "
cur_object.execute(find)
data = cur_object.fetchall()
for i in data:
print (i[ 0 ], i[ 1 ], i[ 2 ], i[ 3 ], sep = "--" )
database.close()
|
Output:
Example 2:
Here we display all the rows where the name begins with the letter H and ends with the letter A in the table.
Python3
import mysql.connector
database = mysql.connector.connect(
host = "localhost" ,
user = "root" ,
password = "",
database = "gfg"
)
cur_object = database.cursor()
print ( "like operator name starts with H and ends with A" )
find = "SELECT * from itdept where Name like 'H%A' "
cur_object.execute(find)
data = cur_object.fetchall()
for i in data:
print (i[ 0 ], i[ 1 ], i[ 2 ], i[ 3 ], sep = "--" )
database.close()
|
Output:
Example 3:
In this program, we display all the rows having three-lettered addressees in the table.
Python3
import mysql.connector
database = mysql.connector.connect(
host = "localhost" ,
user = "root" ,
password = "",
database = "gfg"
)
cur_object = database.cursor()
print ( "like operator address has three letters only" )
find = "SELECT * from itdept where Address like '___' "
cur_object.execute(find)
data = cur_object.fetchall()
for i in data:
print (i[ 0 ], i[ 1 ], i[ 2 ], i[ 3 ], sep = "--" )
database.close()
|
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...