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

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

Zusammenfassung der 10 am häufigsten gestellten Fragen in Linux-Interviews

Vorwort Wenn Sie sich auf die Stelle eines Betrie...

So installieren Sie pyenv unter Linux

Voraussetzungen Git muss installiert werden Insta...

Beispiel für die Implementierung eines gestrichelten Rahmens mit html2canvas

html2canvas ist eine Bibliothek, die Canvas aus H...

Tabellen dynamisch in HTML hinzufügen_PowerNode Java Academy

Ohne weitere Umschweife werde ich den Code direkt...

Zusammenfassung wichtiger MySQL-Protokolldateien

Autor: Ding Yi Quelle: https://chengxuzhixin.com/...

Perfekte Lösung für das Problem des CSS-Hintergrundbildpfads im Webpack

Innerhalb des Style-Tags der Vue-Komponente befin...

Erläuterung der neuen Funktion von Hadoop 2.X, der Papierkorbfunktion

Durch Aktivieren der Papierkorbfunktion können Si...

Grundlegendes Installationstutorial zum Dekomprimieren von MySQL-Paketen

Da ich auf einen neuen Computer gewechselt bin, m...

So behandeln Sie den vom Linux-System gemeldeten Fehler tcp_mark_head_lost

Problembeschreibung Kürzlich meldete ein Host die...