Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL

Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL

Während des Entwicklungsprozesses trat eine Anforderung auf: Name, Handynummer, Ausweis und Dokumenttyp des Kunden mussten dynamisch gespeichert werden. Dies bedeutet, dass das Frontend die Informationen von einer, zwei oder drei Personen übertragen kann, was einer dynamischen und nicht festgelegten Anzahl von vier Feldern entspricht (Name, Handynummer, Ausweis, Dokumenttyp).

Die Frontend-Seite sieht wie folgt aus:

Dies ist das Bild der Frontpartie

Ich verwende List Um das JSON vom Frontend zu empfangen, verwendet MySQL varchar, um dieses JSON-Array zu speichern

[{
	"cardId": "110101199003072316",
	"cstName": "Zhang Shuang'er 1",
	"cstMobile": "13263654144",
	"Ausweistyp": "1"
}, {
	"cardId": "11010119900307571X",
	"cstName": "Zhang Shuang'er 2",
	"cstMobile": "13263654144",
	"Ausweistyp": "1"
}]

Die Produktanforderung besteht darin, diese gemeinsamen Kundeninformationen unscharf abzufragen. Am Anfang habe ich es falsch geschrieben:

Wählen Sie * aus signCustomerGroup wie '%儿%'

Doch später stieß ich auf ein Problem. Wenn ich beispielsweise den Buchstaben „c“ ungenau eingebe, wird der englische Feldname „cardId“ auf der linken Seite gefunden.
Später erfuhr ich, dass MySQL 5.7 und spätere Versionen den JSON-Typ hinzugefügt haben und einige JSON-Typfunktionen verwendet werden können, um ein Feld im JSON-Format direkt abzufragen.

Die korrekte Syntax lautet wie folgt:

Tabellenfelder:

Ausweis sign_customer_info_ext
1 [{“cstName”:“hhjk”,“cstMobile”:“14258669888”,“idCardType”:“1”,“cardId”:“460101199601012516”}]
2 [{"cstName":"ghhj中文1355","cstMobile":"18253558608","idCardType":"1","cardId":"460101199601012815"},{"cstName":"fhjj重要133366","cstMobile":"15555555555","idCardType":"1","cardId":"460101199601012313"}]

Die wichtigste verwendete SQL-Funktion ist json_extract(), mit der alle angegebenen Daten im JSON-Format gefunden werden.

1. JSON-Array-Abfrage

Fuzzy-Abfrage eines Felds im JSON-Array-Format:
Anwendung:
SELECT * FROM Tabellenname WHERE json_extract(Feldname,"$[*].json中key") wie '%zu suchender Wert%';
Beispiele:
SELECT * FROM Tabelle WHERE json_extract(sign_customer_info_ext,"$[*].cstName") wie '%h%';
Präzise Abfrage (Hinweis: Bei einer präzisen Abfrage muss der Index des Arrays angegeben werden, zu dem das abgefragte Feld gehört. Wenn beispielsweise der erste Index [0] ist, ist der zweite Index [1]).
Wählen Sie ID, sign_customer_info_ext aus der Tabelle aus, wobei json_extract (sign_customer_info_ext, "$[0].cstName") = "ghhj中文1355" ist.

2. Einzelne JSON-Abfrage

Einzelner JSON-Parameter im Frontend und in der MySQL-Datenbank:

{
	"cstName": "Ma Yun",
	"cstMobile": "17879767646",
	"idCardType": "1",
	"cardId": "E4813980"
}
Fuzzy-Abfrage, einzelne JSON-Abfrage:
Anwendung:
SELECT id,sign_customer_info_ext FROM Tabellenname WHERE json_extract(Feldname,"$.json中key") like '%马云%';
Beispiele:
SELECT id,sign_customer_info_ext FROM table WHERE json_extract(sign_customer_info_ext,"$.cstName") like '%Ma Yun%';

Zusammenfassen

Dies ist das Ende dieses Artikels über die Abfrage des JSON-Formats in MySQL. Weitere relevante Inhalte für MySQL-Abfragen im JSON-Format 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:
  • MySQL-Implementierung zum Extrahieren und Abfragen von Felddaten des Typs JSON
  • MySQL ruft Daten basierend auf dem JSON-Feldinhalt als Abfragebedingung ab (einschließlich JSON-Arrays).
  • Mybatis MySQL Fuzzy-Abfragemethode (CONCAT mehrere Felder) und Fehler
  • Beispielcode zur Implementierung der String-Split-Funktion im MySQL-Abfragefeld
  • So weisen Sie Feldern bei der MySQL-Abfrage Standardwerte zu
  • Abfragen von MySQL-Datums- und Zeitfeldern

<<:  HTML-Tbody-Verwendung

>>:  Reines js, um den Effekt eines Karussells zu erzielen

Artikel empfehlen

InnoDB-Typ MySql stellt Tabellenstruktur und Daten wieder her

Voraussetzung: Speichern Sie die .frm- und .ibd-D...

Lösung zur Verwendung der Baidu-Freigabe auf der HTTPS-Seite

Seit der Aktivierung des https-Zugriffs für die g...

Tutorial zur Installation von MySQL 5.6 auf CentOS 6.5

1. Laden Sie das RPM-Paket für Linux herunter htt...

Lösungen zur Verarbeitung und Reparatur historischer Linux-Images

Der ECS-Cloud-Server, der mit dem historischen Li...

So übergeben Sie Parameter über CSS an JS

1. Hintergrund, der durch CSS übergeben werden mu...

Ausführliche Erläuterung des MySQL-Gemeinschaftsindex und des eindeutigen Index

Szenario 1. Pflegen Sie ein Bürgersystem mit eine...

Linux CentOS6.5 yum installiere mysql5.6

In diesem Artikel wird der einfache Prozess der I...

JavaScript-HTML zur Implementierung der mobilen Red Envelope Rain-Funktionsseite

In diesem Artikelbeispiel wird der spezifische HT...