Beispiel einer MySql-Fuzzy-Abfrage-Lösung zum Abrufen von JSON-Schlüsselwörtern

Beispiel einer MySql-Fuzzy-Abfrage-Lösung zum Abrufen von JSON-Schlüsselwörtern

Vorwort

Kürzlich stieß ich in einem Projekt auf eine solche Anforderung: Ich muss einen Ergebnissatz abrufen, der den angegebenen Inhalt in der Datentabelle enthält. Der Datentyp dieses Felds ist Text und der gespeicherte Inhalt liegt im JSON-Format vor. Die spezifische Tabellenstruktur ist wie folgt:

CREATE TABLE `Produkt` (
	`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT KOMMENTAR 'ID',
	`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Produktname' COLLATE 'utf8mb4_general_ci',
	`Preis` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00' COMMENT 'Produktpreis',
	`suit` TEXT NOT NULL COMMENT 'Anwendbares Store-JSON-Format zum Speichern der Store-ID' COLLATE 'utf8mb4_general_ci',
	`status` TINYINT(3) NOT NULL DEFAULT '0' COMMENT 'Status 1-Normal 0-Gelöscht 2-Delisted',
	`create_date` DATETIME NICHT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Veröffentlichungszeitpunkt',
	`update_date` DATETIME NICHT NULL DEFAULT CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP COMMENT 'Änderungszeit',
	PRIMÄRSCHLÜSSEL (`id`) MIT BTREE
)
COMMENT='Produkttabelle'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;

Die Tabellendaten lauten wie folgt:

Aktuelle Anforderung: Suchen Sie die Daten mit 10001 in Anzug->Hotel.

Über die Google- und Baidu-Suche können wir die folgenden Lösungen finden:

Option 1:

Wählen Sie * aus dem Produkt, wobei die Farbe etwa '%"10001"%' ist;
#Like-Methode kann keine Indizes verwenden, hat eine schlechte Leistung und ist nicht genau

Option 2:

Wählen Sie * aus dem Produkt, wobei Farbe LOCATE('"10001"', 'Farbe') > 0 ist;
# Die LOCATE-Methode hat das gleiche Problem wie die LIKE-Methode

Option 3:

Wählen Sie * aus dem Produkt, wobei Anzug != '' und json_contains('Anzug'->'$.hotel', '"10001"');
#Suche mit der in MySQL integrierten JSON-Funktion, für deren Unterstützung MySQL 5.7 oder höher erforderlich ist, mit hoher Genauigkeit und ohne Verwendung eines Volltextindex

Option 4 (endgültig angenommene Option):

Wählen Sie * aus dem Produkt, wobei MATCH(Farbe) GEGEN('+"10001"' IM BOOLEAN-MODUS) ist.
#Sie können die Volltextindizierung verwenden. Das Standardlimit für MySQL-Schlüsselwörter beträgt mindestens 4 Zeichen. Sie können ft_min_word_len=2 in mysql.ini ändern, damit die Änderung nach dem Neustart wirksam wird.

Weitere Informationen zur Verwendung von MATCH() AGAINST() finden Sie im MySQL-Referenzhandbuch:

https://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html

Zusammenfassen

Dies ist das Ende dieses Artikels über das Beispiel einer MySql Fuzzy Query JSON Keyword Retrieval-Lösung. Weitere relevante Inhalte zum MySql JSON Keyword Retrieval finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten
  • Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL
  • Datenabfragevorgang im MySQL-JSON-Format
  • Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen
  • Was ist schneller: MySQL-Volltextindex, gemeinsamer Index, Like-Abfrage und JSON-Abfrage?
  • Zwei Abfragemethoden, wenn der MySQL-Abfragefeldtyp JSON ist
  • Python-Abfrage MySQL, gibt JSON-Instanz zurück
  • So fragen Sie JSON in der Datenbank in MySQL 5.6 und darunter ab
  • Mysql fragt die Daten direkt im gespeicherten JSON-String ab

<<:  HTML-Bild img-Tag_Powernode Java Academy

>>:  Analyse der Verwendung der Funktion zur sofortigen Ausführung in JavaScript

Artikel empfehlen

Vue implementiert das Ziehen und Sortieren von Bildern

In diesem Artikelbeispiel wird der spezifische Co...

Die benutzerdefinierte Vue-Komponente implementiert eine bidirektionale Bindung

Szenario: Die von uns häufig verwendeten Interakt...

5 Gründe, warum sich Responsive Webdesign nicht lohnt

Dieser Artikel stammt aus Tom Ewers Managewp-Blog ...

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Mit beiden Methoden kann ein JavaScript-Code nach...

JavaScript zur Implementierung eines einfachen Einkaufsformulars

In diesem Artikel wird der spezifische JavaScript...

Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3

Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...

Design-Referenz: Erfolgsbeispiel für die Erstellung einer WordPress-Website

Jede dieser 16 Sites ist eine sorgfältige Lektüre ...

So unterstützen Sie Webdings-Schriftarten in Firefox

Firefox, Opera und andere Browser unterstützen Web...