Heim  >  Artikel  >  Datenbank  >  So verwenden Sie den LIKE-Operator der MySQL-Datenbank in Python

So verwenden Sie den LIKE-Operator der MySQL-Datenbank in Python

WBOY
WBOYnach vorne
2023-05-31 21:46:101585Durchsuche

Der

LIKE-Operator wird verwendet, um in einer Spalte in der WHERE-Klausel nach einem angegebenen Muster zu suchen.

Syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

Muster Hier wird die angegebene Vorlage platziert und hier wird „%“ verwendet, auch Platzhalter genannt

% Wenn es vor der Bedingung platziert wird, wird nach Daten gesucht, die mit enden. ..; Wenn beispielsweise %李

% nach der Bedingung steht, werden die Daten gesucht, die mit... beginnen. Beispiel: Wenn 李%

% vor und nach der Bedingung vorhanden ist, sind es die enthaltenen Daten gesucht; zum Beispiel: % Li%

Tipps:

FEHLER 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax in der Nähe von „%z“ zu finden " in Zeile 1

Der Fehler von 1064 besteht darin, dass während der LIKE-Abfrage (Syntaxfehler) das Platzhalterzeichen nicht in Anführungszeichen gesetzt wird, sodass der Fehler gemeldet wird...

Korrekte Anzeige, zum Beispiel: „%李%“

Beispiel 1: Das Terminal führt SQL aus und WHERE verwendet LIKE in der Klausel

Um die Informationen von Personen abzufragen, deren Adresse mit Hang beginnt

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>

Fragen Sie die Informationen von Personen ab, deren Adresse mit u endet

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>

Beispiel 2: Verwenden Sie ein Python-Skript, um die SQL-Anweisung auszuführen, die LIKE enthält.

Fragen Sie die Adresse ab, die z Personeninformationen von Zeichen enthält.

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
{"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

Fragen Sie die Personeninformationen von Zeichen ab, die keine z-Zeichen enthalten in Python

% ist ein spezielles Symbol in Python, z. B. %s und %d repräsentieren jeweils String-Platzhalter und numerische Platzhalter.

Wie wir alle wissen, erfordert die Fuzzy-Abfrage von MySQL auch die Verwendung von %.

Sie können also zuerst die Zeichenfolge extrahieren, die Sie überprüfen möchten, und sie dann als Parameter übergeben.

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

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den LIKE-Operator der MySQL-Datenbank in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen