VorwortKü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 ZusammenfassenDies 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:
|
<<: HTML-Bild img-Tag_Powernode Java Academy
>>: Analyse der Verwendung der Funktion zur sofortigen Ausführung in JavaScript
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Anforderungsbeschreibung Probl...
Szenario: Die von uns häufig verwendeten Interakt...
Dieser Artikel stammt aus Tom Ewers Managewp-Blog ...
1. Einleitung Die Standortanweisung ist die Kernk...
Beachten! ! ! Wählen Sie * vom Benutzer, wobei di...
Mit beiden Methoden kann ein JavaScript-Code nach...
Vorwort Vor Feierabend erhielt der Autor eine Anf...
In diesem Artikel wird der spezifische JavaScript...
Wichtiger Hinweis: Bevor Sie diesen Artikel lesen...
Dieser Artikel veranschaulicht anhand von Beispie...
Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...
<br />Wir haben in unseren Artikeln bei jb51...
Jede dieser 16 Sites ist eine sorgfältige Lektüre ...
Firefox, Opera und andere Browser unterstützen Web...