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!