Maison > base de données > tutoriel mysql > Comment utiliser l'opérateur LIKE de la base de données mysql en python

Comment utiliser l'opérateur LIKE de la base de données mysql en python

WBOY
Libérer: 2023-05-31 21:46:10
avant
1630 Les gens l'ont consulté

L'opérateur LIKE est utilisé pour rechercher un modèle spécifié dans une colonne de la clause WHERE.

Grammaire :

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
Copier après la connexion

pattern C'est ici que le modèle spécifié est placé, et "%" est utilisé ici, également appelé caractère générique

% S'il est placé avant la condition, il recherchera les données se terminant par... ; par exemple : %李

% S'il est placé après la condition, il recherchera les données commençant par.. .; par exemple : :李%

% Si elle existe avant et après la condition, alors les données incluses sont vérifiées par exemple : %李%

Petits points de connaissance ; :

#🎜 🎜#
ERROR 1064 (42000) : Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de "%z" à l'adresse ligne 1

# 🎜🎜#

1064 l'erreur est que lors de la requête LIKE (erreur de syntaxe), le caractère générique n'est pas cité, donc l'erreur est signalée...

Correct afficher, par exemple : "%李%"# 🎜🎜#

Exemple 1 : Le terminal exécute SQL et utilise LIKE dans la clause WHERE

Interrogez le informations de la personne dont l'adresse commence par Hang

root@7c6316b19d80:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 140
Server version: 5.6.51 MySQL Community Server (GPL)
 
mysql> mysql> select * from test_user where address like "Hang%";
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>
Copier après la connexion
# 🎜🎜#Interroger les informations des personnes dont l'adresse se termine par u

mysql> select * from test_user where address like "%u";
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>
Copier après la connexion

Exemple 2 : utilisez un script Python pour exécuter SQL déclaration contenant LIKE

Requête d'adresse Informations personnelles contenant des caractères z

import pymysql
 
# 连接数据库
connection = pymysql.connect(host="localhost", user="root", password="123456",
                             database="testing", port=3306, charset="utf8",
                             cursorclass=pymysql.cursors.DictCursor)
 
try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address LIKE "%z%";
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
Copier après la connexion
{"id": 3, "name": "python", "mobile": "18856565858", "address": "Hangzhou"}
{"id": 4, "name": "java", "mobile": "17756565858", "address": "Hangzhou"}
{"id": 5, "name": "php", "mobile": "15556565858", "address": "Hangzhou"}
{"id": 6, "name": "c#", "mobile": "17748484142", "address": "Hangzhou"}
 
Process finished with exit code 0
Copier après la connexion
Requête d'informations sur une personne dont l'adresse ne contient pas de caractères z

try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address NOT LIKE "%z%";
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
Copier après la connexion
{"id": 1, "name": "张三三", "mobile": "17748484141", "address": "浙江杭州"}
{"id": 9, "name": "111", "mobile": "18847474549", "address": "浙江杭州"}
 
Process finished with exit code 0
Copier après la connexion

Extension des points de connaissance : base de données MySQL comme requête floue en python

# 🎜🎜#% est un symbole spécial en python, tel que %s et %d, qui représentent respectivement des espaces réservés de chaîne et des espaces réservés numériques.

Comme nous le savons tous, la requête floue de MySQL doit également utiliser %.

Ainsi, vous pouvez d'abord extraire la chaîne que vous souhaitez vérifier, puis la transmettre en tant que paramètre.

args = "%"+subtitle+"%"
sqlQueryTitle="select count(*) from tbl_peng_article where title like "%s""%args
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal