Details zum Like-Operator in MySQL

Details zum Like-Operator in MySQL

1. Einleitung

Beim Filtern unbekannter oder teilweise bekannter Werte können Sie den Like-Operator verwenden. Der Like-Operator wird für das Fuzzy-Matching verwendet.

Like unterstützt zwei Platzhalter, und zwar:

  • % Platzhalter, wird zum Abgleichen mehrerer Zeichen verwendet
  • _ , das zum Abgleichen eines einzelnen Zeichens verwendet wird

Platzhalter können je nach ihrem Standort auf sechs verschiedene Arten abgeglichen werden:

Matching-Methode Wirkung
%xx Zeigt die richtige Übereinstimmung an. Die xx-Zeichen auf der rechten Seite müssen genau gleich sein. Auf der linken Seite kann ein beliebiges Zeichen oder kein Zeichen sein.
_xx Zeigt die richtige Übereinstimmung an. Die xx-Zeichen auf der rechten Seite müssen genau gleich sein. Auf der linken Seite kann ein beliebiges Zeichen stehen, es muss jedoch ein Zeichen sein.
xx % Zeigt eine Übereinstimmung von links an. Die xx-Zeichen auf der rechten Seite müssen vollständig gleich sein. Auf der rechten Seite kann ein beliebiges Zeichen oder kein Zeichen stehen.
xx_ Zeigt eine Übereinstimmung links an. Die xx-Zeichen auf der linken Seite müssen vollständig gleich sein. Auf der rechten Seite kann ein beliebiges Zeichen stehen, es muss jedoch ein Zeichen sein.
%xx% Zeigt eine Übereinstimmung in der Mitte an. Die Mitte muss vollkommen gleich sein. Die linke und rechte Seite können beliebige Zeichen sein. Auf der linken und rechten Seite dürfen keine anderen Zeichen stehen.
xx Zeigt eine Übereinstimmung in der Mitte an. Die Mitte muss vollkommen gleich sein. Die linke und rechte Seite können beliebige Zeichen sein. Die linke und rechte Seite muss ein Zeichen sein.

2. Haupttext

Bereiten Sie zunächst eine Benutzertabelle vor. Die DDL- und Tabellendaten sind wie folgt und können direkt kopiert und verwendet werden.

Namen festlegen utf8mb4;
Setzen Sie FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Tabellenstruktur für Benutzer
-- ----------------------------
DROP TABLE, WENN `Benutzer` EXISTIERT;
CREATE TABLE `Benutzer` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Benutzername',
  `Alter` int(11) NICHT NULL KOMMENTAR 'Alter',
  `sex` smallint(6) NOT NULL COMMENT 'Geschlecht',
  PRIMÄRSCHLÜSSEL (`id`) MIT BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamisch;

-- ----------------------------
-- Aufzeichnungen des Benutzers
-- ----------------------------
INSERT INTO `user` VALUES (1, 'Benutzername', 18, 1);
INSERT INTO `user` VALUES (2, 'Benutzer', 22, 1);
INSERT INTO `user` VALUES (3, 'Benutzer', 38, 1);
INSERT INTO `user` VALUES (4, 'Benutzer', 25, 1);
INSERT INTO `user` VALUES (5, 'Benutzername', 13, 0);
INSERT INTO `user` VALUES (6, 'Benutzer', 37, 1);
INSERT INTO `Benutzer` VALUES (7, 'Danke', 18, 1);

Setzen Sie FOREIGN_KEY_CHECKS = 1;
Die anfängliche Reihenfolge der kopierten Codedaten ist wie folgt:

mysql> wähle * vom Benutzer aus;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 2 | Zhang San | 22 | 1 |
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
| 7 | Danke | 18 | 1 |
+----+--------+-----+-----+
7 Zeilen im Satz (0,00 Sek.)

2,1 % Wildcard

Es gibt drei Übereinstimmungsmethoden für das %-Platzhalterzeichen, nämlich %xx , xx% und %xx% . Im Folgenden wird die einfache Verwendung der drei Methoden demonstriert.

brauchen:

Fragen Sie den Benutzer mit dem Nachnamen Zhang in der user ab

Stellungnahme:

mysql> select * from user, wobei der Name etwa '张%' ist;
+----+------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+------+-----+-----+
| 2 | Zhang San | 22 | 1 |
+----+------+-----+-----+
1 Zeile im Satz (0,00 Sek.)


brauchen:

Abfrage der Benutzer in der user , deren Namen mit sieben enden

Stellungnahme:

mysql> wähle * vom Benutzer, wobei der Name wie '%七' ist;
+----+------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+------+-----+-----+
| 6 | Tianqi | 37 | 1 |
+----+------+-----+-----+
1 Zeile im Satz (0,00 Sek.)

brauchen:

Abfrage der user nach Benutzern, deren Namen das Zeichen „李“ enthalten

Stellungnahme:

mysql> select * from user, wobei der Name wie '%李%' ist;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 3 | Li Si | 38 | 1 |
+----+--------+-----+-----+
2 Zeilen im Satz (0,00 Sek.)


2.2 _Platzhalter

Der Unterschied zwischen dem Platzhalterzeichen _ und % besteht darin, dass _ nur mit einem Zeichen übereinstimmt und mit einem Zeichen übereinstimmen muss; während % mit mehreren Zeichen übereinstimmen kann, sogar mit 0 Zeichen.

brauchen:

Abfrage der user für Benutzer, deren Nachname Li ist und deren Vorname nur zwei chinesische Zeichen enthält

Stellungnahme:

mysql> select * from user, wobei der Name etwa ‚李_‘ ist;
+----+------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+------+-----+-----+
| 3 | Li Si | 38 | 1 |
+----+------+-----+-----+
1 Zeile im Satz (0,00 Sek.)



brauchen:

Abfrage user Benutzers mit dem Namen drei in der Benutzertabelle

Stellungnahme:

mysql> select * from user, wobei der Name etwa ‚_三‘ ist;
+----+------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+------+-----+-----+
| 2 | Zhang San | 22 | 1 |
+----+------+-----+-----+
1 Zeile im Satz (0,00 Sek.)


brauchen:

Abfrage der user nach Benutzern, deren Namen drei „zi“ enthalten und das zweite „zi“ „ma“ ist

Stellungnahme:

mysql> wähle * vom Benutzer, wobei der Name etwa '_麻_' ist;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 5 | Liu Mazi | 13 | 0 |
+----+--------+-----+-----+
1 Zeile im Satz (0,00 Sek.)


2.3 Vorsichtsmaßnahmen bei der Verwendung von Platzhaltern

Platzhalter sind sehr leistungsstark und ich glaube, dass viele Leute sie häufig verwenden, aber die Zeichenfolgenübereinstimmung ist oft nicht besonders schnell. Daher müssen wir bei der Verwendung von Platzhaltern einige Dinge beachten.

  • Durch das Prinzip, es nach Möglichkeit nicht zu verwenden, können alle durch Platzhalter verursachten Probleme vermieden werden. Wenn also für die Suche andere Operatoren verwendet werden können, verwenden Sie LIKE nicht.
  • Versuchen Sie bei der Verwendung von Platzhaltern den Suchbereich einzugrenzen. Überlegen Sie bei mehreren Suchbedingungen, ob der Platzhalter nach anderen Filterbedingungen platziert werden kann.
  • Achten Sie besonders auf die Auswahl und Position der Platzhalter. Sie können die sechs Matching-Methoden zu Rate ziehen, um die für Sie am besten geeignete auszuwählen.

Dies ist das Ende dieses Artikels über die Details des MySQL like Operators. Weitere Informationen zum MySQL-ähnlichen Operator finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des MySQL-Datenbank-LIKE-Operators in Python

<<:  Aktualisierungen für React Router V6

>>:  Detaillierte Erklärung des Sidecar-Modus in Docker Compose

Artikel empfehlen

Detaillierte Beispiele zur Verwendung der JavaScript-Ereignisdelegierung (Proxy)

Inhaltsverzeichnis Einführung Beispiel: Ereignisd...

Detaillierte Analyse der MySQL-Indexdatenstruktur

Inhaltsverzeichnis Überblick Indexdatenstruktur B...

Umfassende Übersicht über die verschiedenen Abhörmethoden von Vue3.0

Inhaltsverzeichnis Hörer 1.Uhreneffekt 2.Uhr 1.1 ...

So öffnen Sie Port 8080 auf dem Alibaba Cloud ECS-Server

Aus Sicherheitsgründen verfügt Alibaba Cloud Serv...

Detaillierte Einführung in das MySQL-Installationstutorial unter Windows

Inhaltsverzeichnis 1. Einige Konzepte, die Sie vo...

So stellen Sie Spring Boot mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

Node+Socket realisiert einfache Chatroom-Funktion

In diesem Artikel wird der spezifische Code von N...

Sieben verschiedene Farbschemata für das Website-Design-Erlebnis

Die Farbabstimmung beim Erstellen einer Website i...

CSS-Benennung: BEM, Scoped CSS, CSS-Module und CSS-in-JS erklärt

Der Anwendungsbereich von CSS ist global. Wenn da...