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
1. Mathematische Funktionen ABS(x) gibt den Absol...
weniger Dateiname Datei anzeigen kleiner Dateinam...
Problembeschreibung 1. Datenbank der Sammelstelle...
Vorwort Wenn Sie sich auf die Stelle eines Betrie...
Voraussetzungen Git muss installiert werden Insta...
html2canvas ist eine Bibliothek, die Canvas aus H...
Ohne weitere Umschweife werde ich den Code direkt...
Autor: Ding Yi Quelle: https://chengxuzhixin.com/...
Verwenden Sie die Ereignisdelegierung, um die Mes...
Innerhalb des Style-Tags der Vue-Komponente befin...
Durch Aktivieren der Papierkorbfunktion können Si...
Da ich auf einen neuen Computer gewechselt bin, m...
Problembeschreibung Kürzlich meldete ein Host die...
Inhaltsverzeichnis Array-Deduplizierung 1 Doppels...
Vorwort Vor nicht allzu langer Zeit habe ich Brow...