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

So konfigurieren Sie Nginx zur Unterstützung von IPv6 unter Linux

1. Überprüfen Sie, ob das vorhandene Nginx IPv6 u...

MySQL-Gruppe durch Gruppieren mehrerer Felder

Bei täglichen Entwicklungsaufgaben verwenden wir ...

Mit CSS3 erstellte Buchseitenumblättereffekte

Ergebnis:Implementierungscode: html <!-- Wenn ...

vue_drf implementiert SMS-Bestätigungscode

Inhaltsverzeichnis 1. Nachfrage 1. Nachfrage 2. S...

Implementierungsidee zur Linksausrichtung der letzten Zeile des Flexbox-Layouts

Wenn es sich bei der Verwendung des Flex-Layouts ...

So passen Sie die Bash-Eingabeaufforderung in Linux an

Vorwort Wie wir alle wissen, ist Bash (die Bourne...

So deinstallieren Sie MySQL 5.7 unter CentOS7

Überprüfen Sie, was in MySQL installiert ist grep...

So erstellen Sie WeChat-Spiele mit CocosCreator

Inhaltsverzeichnis 1. Laden Sie die WeChat-Entwic...

Lösen Sie das Problem der verstümmelten Zeichen im Tomcat10 Catalina-Protokoll

Laufumgebung, Idea2020-Version, Tomcat10, beim Au...

So stellen Sie Ihre erste Anwendung mit Docker bereit

Im vorherigen Artikel haben Sie Docker Desktop in...

Sollte ich für das mobile Web-WAP Bootstrap oder jQuery Mobile verwenden?

Lösung des Problems Bootstrap ist ein CSS-Framewo...

Vue3 verwendet Axios Interceptor zum Drucken von Front-End-Protokollen

Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...